Aggiungere menù personalizzato in WordPress
Spesso è necessario aggiungere un menu supplementare al nostro tema di WordPress e non sempre questo è previsto nelle opzioni dello stesso. Innanzitutto per verificare se questa opzione sia disponibile è necessario andare nel pannello amministrativo e accedere alla sezione ASPETTO>MENU e cliccare sulla linguetta GESTIONE POSIZIONI.
Immediatamente sotto la linguetta troveremo la frase: “Il tuo tema supporta X menu. Seleziona il menu che desideri utilizzare.“
dove X è il numero di menu supportati dal tema.
Qualora il numero fosse “1” (come nella foto) vorrà dire che dovremo aggiungere manualmente il codice per permettere la visualizzazione di un ulteriore menu.
Procedete quindi nel seguente modo:
1- APRITE IL FILE FUNCTIONS.PHP
Tale file potete trovarlo nella cartella principale del nuovo sito.
2- CERCATE IL SEGUENTE CODICE
register_nav_menus( array( 'primary' => __( 'Primary Menu', 'yourtheme' ), ) );
Al posto di primary potreste avere un indicatore diverso assegnato dallo sviluppatore del tema al menu primario così come al posto di Primary Menu un nome diverso (nel caso degli Screenshot di questo articolo il menu è chiamato Main & Mobile Menu). Al posto di Yourtheme indicate il nome del vostro tema (questo dato non è necessario).
Non preoccupatevi, l’importante è individuare la funzione register_nav_menus!
3- MODIFICATE CODICE NEL SEGUENTE MODO
register_nav_menus( array( 'primary' => __( 'Primary Menu', 'yourtheme' ), 'secondary' => __( 'Secondary Menu', 'yourtheme' ), ) );
Dove la riga da aggiungere è
'secondary' => __( 'Secondary Menu', 'yourtheme' )
4- ANDATE IN ASPETTO > MENU
Questo codice farà comparire un secondo menu nella linguetta GESTIONE POSIZIONI.
5- SELEZIONATE LA LINGUETTA “MODIFICA MENU”
Cliccate su CREA UN NUOVO MENU(1).
Scegliete un nome (2) e associatelo al menu secondario creato (3).
6- AGGIUNGETE IL CODICE PER IL SITO
Mettete il seguente codice nel punto in cui volete che compaia il menu nel sito pubblico:
<?php wp_nav_menu( array( 'theme_location' => 'secondary' ) ); ?>
Vedrete comparire il nuovo menu nella posizione da voi scelta con le voci da voi selezionate nel sito pubblico. Lo stesso procedimento può essere applicato nel caso abbiate bisogno di altri menu custom oltre a quelli già implementati. Ovviamente dovrete aggiungere un div contenitore e gli stili necessari ad una buona visualizzazione grafica.
Qualora vogliate aggiungere il div contenitore e assegnargli una classe utilizzando i paramenti della funzione wp_nav_menu vi suggerisco il seguente codice:
<?php $defaults = array( 'theme_location' => 'secondary', 'menu' => '', 'container' => 'div', 'container_class' => 'nomeclasse', 'container_id' => 'idclasse', 'menu_class' => 'menu', ); wp_nav_menu( $defaults ); ?>
Per approfondimenti vi rimando all’esaustiva guida del codex di WordPress.
Questo articolo è stato scritto da Davide Ravasi Guest Blogger di Guida-WordPress.it
Hai aggiunto un menù supplementare al tuo sito/blog WordPress? Fammelo sapere nei commenti
Articolo molto chiaro. Ho una domanda per te. E’ possibile inserire il nuovo menù solo in una specifica pagina o in uno specifico articolo?
Ciao Angelo non credo si possa fare. Al limite puoi creare una sidebar personalizzata per uno specifico articolo/pagina ed inserirci il menù personalizzato che hai creato
Grazie, poche ma chiare parole, sufficenti a farmi impostare il menù secondario e senza molte difficoltà per uno come me che non è del settore.
Però ancora non ho risolto il problema che mi ha spinto a impostare un menù secondario, ossia la necessità di poter visualizzare sul menù primario circa 40 elementi o voci o titoli o pagine madri per un totale di circa 250 pagine di cui oltre 200 come sottoelementi.
Grazie
Ciao io sono riuscito a creare 2 menu principali ma ora nn so dv metterli!!!
devo metterli nella testata ke si presenta in php così:
<?php
/**
* The Header for Customizr.
*
* Displays all of the section and everything up till
*
* @package Customizr
* @since Customizr 1.0
*/
?>
<html class="ie ie7" >
<html class="ie ie8" >
<html >
<!–
tc_head_display()
do_action( ‘__before_body’ );
?>
<body >
<header class="” role=”banner”>
tc_logo_title_display(), TC_header_main::$instance->tc_tagline_display(), TC_header_main::$instance->tc_navbar_display()
do_action( ‘__header’ );
?>
tc_slider_display()
do_action ( ‘__after_header’ )
?>
dove inserisco questo codice: ‘secondary’ ) ); ?> ?
spero tu possa aiutarmi grazie mille! a presto