jon
  • 0
Учитель

Как вручную указать текущую активную страницу с помощью wp_nav_menu()

  • 0

Есть ли способ вручную указать, какая страница в данный момент «активна» при использовании wp_nav_menu() ?

У меня есть страница «Продукты», и на этой странице у меня есть ссылки на различные (динамические) пользовательские таксономии. Когда я нажимаю на одну из этих таксономий, я остаюсь на странице «Продукты», но wp_nav_menu() теряю связь с тем фактом, что я все еще нахожусь на странице «Продукты». Есть ли способ исправить это?

Спасибо!

Джон

Share
  1. Если вы просто хотите добавить current_page_item класс к одному пункту меню, вы можете подключиться к nav_menu_css_class фильтру и при необходимости добавить этот класс. Он вызывается при печати меню.

    Если вы хотите получить доступ ко всему меню и добавить классы, подключитесь к wp_get_nav_menu_items фильтру, где вы получите весь $items массив. Вы можете редактировать classes свойства отдельных элементов.

    • 0
    • Привет Крис, Спасибо за ответ. Я использую <body >, но проблема в том, что что касается wp_nav_menu(), таксономии, на которые я нажимаю, не связаны с ним! Итак, мне нужно сказать wp_nav_menu() — если страница X, тогда покажите «Продукты» как current_page_parent.

      • 0
  2. @Jon Пока вы используете <body <?php body_class(); ?>> WordPress, вы назначите класс current_page_item вашему меню вместе с current_page_parent выпадающими меню.

    • 0
  3. Ян упомянул фильтр nav_menu_css_class, поэтому я посмотрел его, и этот пример был мне полезен Источник: 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

Оставить ответ

You must login to add an answer.