Zeige nur das wp_nav_menu an, das den aktuellen Menüpunkt enthält

Ich habe ein Problem, nur das Menü mit wp_nav_menu anzuzeigen, in dem das aktuelle Menü-Element ist.

Heres, was ich habe:

function register_menus() { register_nav_menus( array( 'sidebar-menu' => __('Sidebar Menu'), 'first-menu' => __('Menu 1'), 'second-menu' => __('Menu 2'), 'third-menu' => __('Menu 3') ) ); } add_action('init', 'register_menus') 

und auf der Seite.php mache ich

  'first-menu')); ?>  'second-menu')); ?>  'third-menu')); ?> 

Wenn ich jetzt eine Seite öffne, die sich in Menü 2 befindet, kann ich sie mit .current-menu-item stylen – also kein Problem hier.

aber ich möchte nur das eine Menü anzeigen, in dem sich das aktuelle Menü befindet (Menü 2). die anderen (Menü 1, Menü 3) sollten angezeigt werden: keine;

Gibt es einen Weg, das zu erreichen? ich dachte an einen walker, einen filter oder eine einfache if- aussage , der nach dem menü sucht , welches das .current-menu-item hat aber ich kann das nicht selbst 🙁

vielen Dank

Solutions Collecting From Web of "Zeige nur das wp_nav_menu an, das den aktuellen Menüpunkt enthält"

Einfach die Nav-classn abfangen und nach der current-menu-item class suchen. Dadurch erhalten Sie das $item es verknüpft ist.

 add_filter( 'nav_menu_css_class', 'get_active_class', 10, 2 ); function get_active_class( $classes, $item ) { if ( in_array( 'current-menu-item', $classes) ) { // We found the active class!: $item } return $classes; } 

Jetzt greifen Sie einfach auf Ihr Navigationsmenü zu und wenden Sie die benötigten CSS-classn oder style="display:none" auf die anderen an.