it-swarm-eu.dev

Jak ručně zadat aktuální aktivní stránku pomocí wp_nav_menu ()

Existuje způsob, jak ručně určit, která stránka je aktuálně "aktivní" při použití wp_nav_menu()?

Mám stránku „Produkty“ a na této stránce mám odkazy na různé (dynamické) vlastní taxonomie. Když kliknu na jednu z těchto taxonomií, zůstanu na stránce „Produkty“, ale wp_nav_menu() ztrácí odkaz na tuto skutečnost, že jsem stále na stránce „Produkty“. Existuje způsob, jak to můžu opravit?

Dík!

Jon

9
Jon

Pokud chcete přidat třídu current_page_item do jedné položky menu, můžete se připojit k filtru nav_menu_css_class a v případě potřeby tuto třídu přidat. Volá se při tisku menu .

Pokud chcete získat přístup k celé nabídce a přidat třídy, připojte se k filtru wp_get_nav_menu_items, kde získáte celé pole $items. Můžete upravit classes vlastnosti jednotlivých položek.

12
Jan Fabry

@ Jon Pokud používáte <body <?php body_class(); ?>> WordPress přiřadí třídu current_page_item do vašeho menu spolu s current_page_parent pokud vaše rozbalovací menu.

2
Chris_O

Jan se zmínil o filtru nav_menu_css_class, takže jsem ho vyhledal a tento příklad mi pomohl Zdroj: 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