it-swarm.com.de

So legen Sie die aktuell aktive Seite manuell mit wp_nav_menu () fest

Gibt es eine Möglichkeit, manuell anzugeben, welche Seite derzeit "aktiv" ist, wenn wp_nav_menu() verwendet wird?

Ich habe eine Seite "Produkte" und auf dieser Seite habe ich Links zu verschiedenen (dynamischen) benutzerdefinierten Taxonomien. Wenn ich auf eine dieser Taxonomien klicke, bleibe ich auf der Seite "Produkte", aber wp_nav_menu() verliert den Hinweis darauf, dass ich immer noch auf der Seite "Produkte" bin. Gibt es eine Möglichkeit, dies zu beheben?

Vielen Dank!

Jon

9
Jon

Wenn Sie die Klasse current_page_item nur einem Menüelement hinzufügen möchten, können Sie eine Verbindung zum Filter nav_menu_css_class herstellen und diese Klasse bei Bedarf hinzufügen. Es heißt wenn das Menü gedruckt wird .

Wenn Sie auf das gesamte Menü zugreifen und Klassen hinzufügen möchten, schließen Sie den wp_get_nav_menu_items-Filter an, in dem Sie das gesamte $items-Array erhalten. Sie können die classes -Eigenschaften einzelner Elemente bearbeiten.

12
Jan Fabry

@Jon Solange Sie <body <?php body_class(); ?>> verwenden, weist WordPress Ihrem Menü die Klasse current_page_item zusammen mit current_page_parent zu, wenn Sie Dropdown-Menüs verwenden.

2
Chris_O

Jan hat den Filter nav_menu_css_class erwähnt, also habe ich ihn nachgeschlagen und dieses Beispiel war für mich hilfreich. Quelle: https://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class

function my_special_nav_class( $classes, $item ) {
    if ( is_single() && $item->title == 'Blog' ) {
        $classes[] = 'special-class';
    }
    return $classes;
}    
add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );
0
Ross