it-swarm-vi.tech

Cách làm việc của chúng tôi và trang web của chúng tôi

Có cách nào để chỉ định thủ công trang nào hiện đang "hoạt động" khi sử dụng wp_nav_menu() không?

Tôi có trang "Sản phẩm" và trên trang đó tôi có các liên kết đến các nguyên tắc phân loại tùy chỉnh (động) khác nhau. Khi tôi nhấp vào một trong những phân loại này, tôi ở lại trang "Sản phẩm" nhưng wp_nav_menu() mất tham chiếu đến thực tế rằng tôi vẫn ở trang "Sản phẩm". Có cách nào tôi có thể khắc phục điều này?

Cảm ơn!

Jon

9
Jon

Nếu bạn chỉ muốn thêm lớp current_page_item vào một mục menu, bạn có thể nối với bộ lọc nav_menu_css_class và thêm lớp đó nếu cần. Nó được gọi là khi menu được in .

Nếu bạn muốn truy cập vào toàn bộ menu và thêm các lớp, hãy nối vào bộ lọc wp_get_nav_menu_items, nơi bạn có được toàn bộ mảng $items. Bạn có thể chỉnh sửa các thuộc tính classes của các mục riêng lẻ.

12
Jan Fabry

@Jon Miễn là bạn đang sử dụng <body <?php body_class(); ?>> WordPress sẽ chỉ định lớp current_page_item cho menu của bạn cùng với current_page_parent nếu bạn sử dụng menu thả xuống.

2
Chris_O

Jan đã đề cập đến bộ lọc nav_menu_css_group, vì vậy tôi đã tra cứu nó và ví dụ này rất hữu ích cho tôi Nguồn: 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