it-swarm-id.com

Cara menentukan secara manual halaman aktif saat ini dengan wp_nav_menu ()

Apakah ada cara untuk menentukan secara manual halaman mana yang "aktif" saat menggunakan wp_nav_menu()?

Saya memiliki halaman "Produk", dan pada halaman itu saya memiliki tautan ke berbagai taksonomi ubahsuaian (dinamis). Ketika saya mengklik salah satu taksonomi ini, saya tetap di halaman "Produk" tetapi wp_nav_menu() kehilangan referensi ke fakta bahwa saya masih di halaman "Produk". Apakah ada cara saya bisa memperbaikinya?

Terima kasih!

Jon

9
Jon

Jika Anda hanya ingin menambahkan kelas current_page_item ke satu item menu, Anda dapat terhubung ke filter nav_menu_css_class, dan menambahkan kelas itu jika perlu. Ini disebut ketika menu dicetak .

Jika Anda ingin akses ke seluruh menu dan menambahkan kelas, terhubung ke filter wp_get_nav_menu_items, di mana Anda mendapatkan seluruh array $items. Anda dapat mengedit properti classes dari masing-masing item.

12
Jan Fabry

@Jon Selama Anda menggunakan <body <?php body_class(); ?>> WordPress akan menetapkan kelas current_page_item ke menu Anda bersama current_page_parent jika Anda menggunakan menu drop down.

2
Chris_O

Jan menyebutkan filter nav_menu_css_class, jadi saya mencarinya dan contoh ini sangat membantu saya Sumber: 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