Come ottenere il nome dell'elemento del menu corrente invece dell'intera lista
Vorrei creare una struttura di menu dove si vede solo l'elemento del menu relativo alla pagina corrente, come su questo sito web http://www.bigspaceship.com/services/
Ho fatto delle ricerche e per ora ho questa funzione:
<?php
$menu_items = wp_get_nav_menu_items( 'main-menu' );
foreach( $menu_items as $item ) {
print_r( $item ) ; // vedi con cosa puoi lavorare
// continua
}
Come posso effettivamente stampare solo il nome dell'elemento del menu per la pagina corrente? Voglio comunque poter controllare gli elementi del menu dal pannello di controllo, cioè poter cambiare il nome di ogni menu dall'amministrazione e vederli aggiornati dinamicamente.
Grazie per qualsiasi aiuto.
In ogni voce del menu,
object_idcontiene l'ID dell'oggetto a cui si riferisce la voce del menu. Questo può essere l'ID di un articolo, pagina, CPT o termine. Se si tratta di un link personalizzato, l'ID si riferisce alla voce stessa. (Se vuoi sapere che tipo di oggetto è, puoi verificare il campoobject.)get_queried_object_id()restituirà l'ID della pagina corrente.Possiamo usare la funzione API
wp_filter_object_list()per filtrare le voci di menu doveobject_idnon corrisponde all'oggetto corrente.Rimarremo con un array contenente un singolo elemento, quindi usiamo la funzione php
currentin modo che$this_itemcontenga solo l'oggetto della voce di menu che corrisponde.Infine,
titlecontiene il nome che abbiamo assegnato alla voce del menu.
$menu_items = wp_get_nav_menu_items( 'main-menu' );
$this_item = current( wp_filter_object_list( $menu_items, array( 'object_id' => get_queried_object_id() ) ) );
echo $this_item->title;
Nota: Non ho testato questo codice, spero funzioni!