WordPress Option Panel – Menù amministrativo.
Nelle precedenti lezioni abbiamo visto come gestire lo sfondo e la testata del nostro sito, andando ad utilizzare delle funzioni fornite da WordPress. Se non abbiamo esigenze particolari possono andar bene le soluzioni già viste. Ma per aggiungere una nostra pagina di amministrazione del tema?. Nella lezione di oggi vedremo proprio questo, aggiungeremo una nuova voce nel menù di amministrazione collegata alla pagina del pannello del tema.
Per fare questo ci viene incontro la funzione add_menu_page(), che prevede 7 parametri:
- $page_title , il titolo della pagina gestito dal tag “title” ( ovvero quello che compare sulla parte alta del browser.)
- $menu_title , il titolo della voce di menù.
- $capability , Quale gruppo di utenti ha accesso alla pagina.
- $menu_slug , Slug di riferimento del menù.
- $function , Nome della funzione a cui agganciare il menù.
- $icon_url , Percorso dell’icona del nostro menù. Va caricata un’immagine di 16 x 16 pixel.
- $position , Posizione del pulsante, nel menù di amministrazione. Di default viene inserito alla fine del menù. Utilizzando una posizione in cui è già presente un elemento, questo verrà sostituito.
2 Dashboard 4 Separator 5 Posts 10 Media 15 Links 20 Pages 25 Comments 59 Separator 60 Appearance 65 Plugins 70 Users 75 Tools 80 Settings 99 Separator
Apriamo, come al solito, il file functions.php e scriviamo:
function add_menu() { add_menu_page("Amministrazione", "Theme Options", 'administrator', 'theme-option', 'themeoption', '' ,61 ); } add_action('admin_menu', 'add_menu'); function themeoption() { echo "<h2> Amministrazione </h2>"; }
Il codice appena scritto è abbastanza semplice, la funzione di Worpdress viene agganciata all’action admin_menu
Andando nel back-end di WordPress, vedremo che è presente una nuova voce “Theme Options” collegata alla nostra pagina di amministrazione, in cui troveremo il titolo che abbiamo aggiunto, Amministrazione
Ora abbiamo due possibilità, o creare l’option panel in un’unica pagina, oppure dividerla in più sezioni. Nel secondo caso è possibile aggiungere una o più sottovoci a Theme Options, utilizzando la funzione add_submenu_page().
- $parent_slug , slug dell’elemento a cui aggiungere la sottovoce, di seguito la lista delle voci già presenti nell’amministrazione.
Dashboard: add_submenu_page( 'index.php', ... ); Articoli: add_submenu_page( 'edit.php', ... ); Media: add_submenu_page( 'upload.php', ... ); Links: add_submenu_page( 'link-manager.php', ... ); Pagine: add_submenu_page( 'edit.php?post_type=page', ... ); Commenti: add_submenu_page( 'edit-comments.php', ... ); Custom Post Types: add_submenu_page( 'edit.php?post_type=your_post_type', ... ); Aspetto: add_submenu_page( 'themes.php', ... ); Also see add_theme_page() Plugins: add_submenu_page( 'plugins.php', ... ); Also see add_plugins_page() Utenti: add_submenu_page( 'users.php', ... ); Also see add_users_page() Strumenti: add_submenu_page( 'tools.php', ... ); Also see add_management_page() Impostazioni: add_submenu_page( 'options-general.php', ... ); Also see add_options_page()
- $page_title , il titolo della pagina gestito dal tag “title“
- $menu_title , il titolo della sottovoce di menù.
- $capability , Quale gruppo di utenti ha accesso alla pagina.
- $menu_slug , Slug di riferimento del menù.
- $function , Nome della funzione a cui agganciare il menù.
Aggiungiamo la funzione dopo add_menu_page():
add_submenu_page( "theme-option", "Testata", "Testata", 'administrator', "theme-header", "themeheader" );
Dopo function themeoption() … aggiungiamo:
function themeheader() { echo "<h2> Testata </h2>"; }
Ecco il risultato.
In alternativa avremmo potuto utilizzare una sola pagina e collegarla ad una sottovoce di Aspetto, in questo modo:
add_submenu_page( "theme-option", "Theme Option", "Theme Option", 'administrator', "theme-option", "themeoption" );
Ecco il codice completo visto oggi.
function add_menu() { add_menu_page("Amministrazione", "Theme Options", 'administrator', 'theme-option', 'themeoption', '' ,61 ); add_submenu_page( "theme-option", "Testata", "Testata", 'administrator', "theme-header", "themeheader" ); } add_action('admin_menu', 'add_menu'); function themeoption() { echo "<h2> Amministrazione </h2>"; } function themeheader() { echo "<h2> Testata </h2>"; }
Oggi abbiamo visto come creare un elemento del menù di amministrazione di WordPress, collegato al pannello di amministrazione del tema. Nella prossima lezione andremo a creare il pannello, aggiungendo il form in cui gestire gli elementi.
Alla prossima lezione.
Si tratta di un corso completo per lo sviluppo di temi e plugin per WordPress, seguendo tutti gli standard di codifica di WordPress.org.Acquista il corso o scarica gratuitamente un estratto
Commenti
GoodWeb
Egregio OTTIMA disqusizione su WordPress.
Ho letto e seguito con passione le tue lezioni, chiare e significative.
Volevo chiederti solo se e quando continui con le stesse …
Grazie e buon Natale
Ciao, ottimo articolo!
Vi scrivo perchè ho l’esigenza di una modifica. In pratica vorrei far visualizzare a diversi utenti con diversi ruoli la stessa voce. Vorrei creare una pagina interna e farla visualizzare soltanto a:
– author
– editor
– contributor
Se ripeto lo script nel dile function.php si rompe tutto.
Potete aiutarmi? Vi ringrazio anticipatamente 😀