it-swarm.com.de

Wie erhält man die ID des aktuellen Menüpunkts?

Ich versuche, die ID des Menüpunkts zu ermitteln, der die Klasse "Aktueller Menüpunkt" hat. Nicht die aktuelle Seiten-ID, sondern die Navigationselement-ID.

Bitte helfen Sie

3
Leroy

Ein bisschen spät vielleicht, aber es gibt noch eine Möglichkeit:

$menu = wp_get_nav_menu_items($menu_id,array(
   'posts_per_page' => -1,
   'meta_key' => '_menu_item_object_id',
   'meta_value' => $post->ID // the currently displayed post
));

var_dump($menu[0]->ID);

Da es sich bei den Menüelementen um Post-Typen handelt, können Sie alle WP-Query-Parameter verwenden, auch eine Meta-Abfrage. Der obige Code wählt alle Menüelemente aus, die mit dem aktuellen Beitrag verbunden sind, und zwar aus dem Menü, das Sie über $menu_id angegeben haben.

4
daniel.auener

Das sollte es lösen Wie bekomme ich den aktuellen Menüpunkttitel als Variable?

aber ändern

$GLOBALS['wpse16243_title'] = $menu_item->title;

zu

$GLOBALS['wpse16243_title'] = $menu_item->ID;

und jetzt können Sie die globale Variable $wpse16243_title verwenden, um die ID zu erhalten

3
Leroy

Der beste Weg wäre, den nav_menu_css_class-Filter zu verwenden. So etwas würde funktionieren:

function wpse19375_nav_class( $classes, $item ){
  if( !in_array( 'current-menu-item', $classes ) )
    return $classes;
  // $item is a 'current-menu-item' object.
  return $classes;
}

add_filter( 'nav_menu_css_class', 'wpse19375_nav_class', 10, 2 );
1
John P Bloch