Esame della funzione wp_nav_menu

Quando WordPress 3 ci ha presentato la nuova funzionalità Menu, ha cambiato il modo in cui abbiamo visualizzato i menu di navigazione per sempre. Non dovevamo più usare le normali funzioni di elenco delle pagine o creare le nostre funzioni personalizzate per integrare i menu di categoria e di pagina, nonché gli elementi esterni o collegati in un menu di navigazione. Ma quanto possiamo personalizzare con questa nuova funzionalità? In questo tutorial, ci immergeremo in profondità in tutto ciò che il wp_nav_menu la funzione può fare, utilizzare la classe Walker per aggiungere una descrizione secondaria e toccare alcune delle relative funzioni.


I parametri

La funzione ha diversi parametri con cui lavorare. Ecco i valori predefiniti elencati nel codice WordPress.org:

  , 'menu' =>, 'container' => 'div', 'container_class' => 'menu- menu slug -container', 'container_id' =>, 'menu_class' => 'menu', 'menu_id' = >, 'Echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' =>, 'after' =>, 'link_before' =>, 'link_after' =>, 'items_wrap' => '% 3 $ s',' depth '=> 0,' walker '=>); ?> 

Location a tema

Usando questo parametro, possiamo impostare una posizione del tema che viene poi utilizzata nella pagina Menu per impostare un menu per lavorare in quella parte del tema, senza dover definire manualmente quale menu dovrebbe apparire lì. Questo è molto utile per i distributori di temi perché è possibile utilizzare le condizioni per visualizzare un menu solo se l'utente ha definito un menu per quella posizione. L'unico altro requisito è che tu usi la funzione register_nav_menu () per registrare queste posizioni. Questo di solito è fatto dai tuoi file di funzione quando stai configurando il supporto per i menu.

Iniziamo a costruire i nostri parametri di funzione del menu personalizzato presumendo di aver registrato una posizione tematica chiamata "primario".

 $ params = array ('theme_location' => 'primary');

Menu

Questo parametro viene utilizzato per definire manualmente quale menu deve essere utilizzato. Nel nostro esempio, impostiamo solo una posizione generica del menu e non ne definiamo uno esatto da utilizzare, ma se volessimo dire alla funzione di utilizzare un menu chiamato "Navigazione primaria", i nostri parametri sarebbero simili a questo:

 $ params = array ('theme_location' => 'primary', 'menu' => 'Primary Navigation');

Contenitore

Per impostazione predefinita, il nostro menu sarà incluso in a div, ma se sei come me, di solito non ne hai bisogno e probabilmente vuoi ridurre la quantità di divs e altri tag utilizzati per mantenere il codice il più ordinato possibile. Puoi anche usare questo parametro per definire un tag diverso come un html5

o