Come ottenere il nome dell'elemento del menu corrente invece dell'intera lista

14 set 2015, 07:18:43
Visualizzazioni: 18.2K
Voti: 1

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.

0
Tutte le risposte alla domanda 1
2
  1. In ogni voce del menu, object_id contiene 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 campo object.)

  2. get_queried_object_id() restituirà l'ID della pagina corrente.

  3. Possiamo usare la funzione API wp_filter_object_list() per filtrare le voci di menu dove object_id non corrisponde all'oggetto corrente.

  4. Rimarremo con un array contenente un singolo elemento, quindi usiamo la funzione php current in modo che $this_item contenga solo l'oggetto della voce di menu che corrisponde.

  5. Infine, title contiene 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!

14 set 2015 07:50:24
Commenti

Commento: Funziona

Felix Felix
20 gen 2017 17:39:45

Cosa succede se la pagina corrente è un archivio?

Mithc Mithc
11 lug 2018 20:34:17