Come ottenere l'ID dell'elemento di menu attivo (current-menu-item)?
7 giu 2011, 00:20:39
Visualizzazioni: 27.1K
Voti: 3
Sto cercando di ottenere l'ID dell'elemento del menu che ha la classe "current-menu-item". Non l'ID della pagina corrente, ma l'ID dell'elemento di navigazione.
Per favore aiutate

Leroy
61
Commenti
Tutte le risposte alla domanda
3
0
Forse un po' in ritardo, ma c'è un altro modo per farlo:
$menu = wp_get_nav_menu_items($menu_id,array(
'posts_per_page' => -1,
'meta_key' => '_menu_item_object_id',
'meta_value' => $post->ID // il post attualmente visualizzato
));
var_dump($menu[0]->ID);
Poiché gli elementi del menu sono post-type, puoi utilizzare tutti i parametri di WP-Query, persino una meta query. Il codice sopra seleziona tutti gli menu_items collegati al post corrente, dal menu specificato tramite $menu_id
.

daniel.auener
151
23 nov 2012 10:28:11
0
Questo dovrebbe risolverlo Come ottenere il titolo del current-menu-item come variabile?
ma modifica
$GLOBALS['wpse16243_title'] = $menu_item->title;
in
$GLOBALS['wpse16243_title'] = $menu_item->ID;
e ora puoi usare la variabile globale $wpse16243_title
per ottenere l'ID

Leroy
61
7 giu 2011 12:15:26
3
Il modo migliore sarebbe utilizzare il filtro nav_menu_css_class
. Qualcosa come questo funzionerebbe:
function wpse19375_nav_class( $classes, $item ){
if( !in_array( 'current-menu-item', $classes ) )
return $classes;
// $item è un oggetto 'current-menu-item'.
return $classes;
}
add_filter( 'nav_menu_css_class', 'wpse19375_nav_class', 10, 2 );

John P Bloch
11K
7 giu 2011 00:53:08
Commenti
Domande correlate
2
risposte
3
risposte