Devi aggiungere una nuova voce ad un menù nell’amministrazione di wordpress?
Non sai come inserire un nuovo link ad un menù esistente di wordpress?
Ecco come fare in pochi semplici click.
Introduzione
Molto spesso si ha la necessità di aggiungere delle voci di menù nell’amministrazione di wordpress e, in questo articolo, vediamo come aggiungerne di nuove a dei menù già esistenti.
Quello che utilizzeremo oggi è l’action admin_menu. Questa action servirà per richiamare poi la funzione add_submenu_page che, come il nome suggerisce, si occuperà dell’inserimento della nuova voce in un menù preesistente di wordpress.
La funzione add_submenu_page
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
$parent_slug
Lo slug del menù parent
$page_title
Il titolo che visualizzeremo nel tag title
$menu_title
Il titolo della pagina
$capability
Il ruolo dell’utente che avrà accesso a questa nuova voce
$menu_slug
Lo slug della nuova voce di menù
$function
La funzione di callback da richiamare quando si clicca su questa nuova voce
N.b: l’unica cosa a cui fare molta attenzione è il $parent_slug. Inserendo un parent_slug errato non avremo mai l’effetto desiderato cioè, visualizzare la nuova voce.
Ok, ora che abbiamo visto i parametri della funzione add_submenu_page, vediamo il codice da utilizzare.
Aggiungere una nuova voce alla dashboard
add_action('admin_menu','addSubPage'); function addSubPage() { global $submenu; $parent_slug = 'index.php'; add_submenu_page( $parent_slug, __('Nuova voce', 'academy'), __('Nuova voce', 'academy'), 'edit_posts', 'la_mia_nuova_voce', 'callback'); } function callback() { echo "Hai cliccato sulla nuova voce di menù. Questa è la callback. Puoi modificare la callback come vuoi inserendo codice html"; }
Aggiungere una nuova voce agli articoli
add_action('admin_menu','addSubPage'); function addSubPage() { global $submenu; $parent_slug = 'edit.php'; add_submenu_page( $parent_slug, __('Nuova voce', 'academy'), __('Nuova voce', 'academy'), 'edit_posts', 'la_mia_nuova_voce', 'callback'); } function callback() { echo "Hai cliccato sulla nuova voce di menù. Questa è la callback. Puoi modificare la callback come vuoi inserendo codice html"; }
Aggiungere una nuova voce per i custom post type
add_action('admin_menu','addSubPage'); function addSubPage() { global $submenu; $parent_slug = 'edit.php?post_type=il_mio_postype'; add_submenu_page( $parent_slug, __('Nuova voce', 'academy'), __('Nuova voce', 'academy'), 'edit_posts', 'la_mia_nuova_voce', 'callback'); } function callback() { echo "Hai cliccato sulla nuova voce di menù. Questa è la callback. Puoi modificare la callback come vuoi inserendo codice html"; }
Aggiungere una nuova voce alle opzioni
add_action('admin_menu','addSubPage'); function addSubPage() { global $submenu; $parent_slug = 'options-general.php'; add_submenu_page( $parent_slug, __('Nuova voce', 'academy'), __('Nuova voce', 'academy'), 'edit_posts', 'la_mia_nuova_voce', 'callback'); } function callback() { echo "Hai cliccato sulla nuova voce di menù. Questa è la callback. Puoi modificare la callback come vuoi inserendo codice html"; }
Come puoi notare, l’unica cosa che è stata modificata è il $parent_slug che, per la dashboard è index.php, per gli articoli è edit.php, per le opzioni è options-general.php etc.etc.
Quindi, l’unica cosa che dovete capire è quale è il parent_slug corretto a cui vuoi inserire la nuova voce di menù.
P.s: ricordatevi che quete funzioni vanno messe sempre all’interno del file function.php.
Come fare per scoprire il parent_slug corretto?
Vediamo come puoi scoprire il parent slug corretto
Incollando questa funzione nel functions.php visualizzerai un array completo di tutte le voci di menù quindi, da qui potrai cercare il corretto parent_slug da utilizzare
add_action('admin_init','show_submenu'); function show_submenu() { global $submenu; print_r($submenu) }
Ok ora puoi inserire tutte le voci che vuoi e ricorda che, se riscontri problemi, lascia anche un messaggio che insieme cercheremo la soluzione migliore.
Al prossimo #aWPaDay con #Wordpress
DETTAGLI
Livello: medio
Compatibilità: testato su WP versione 3.9.1