Добавить активный класс в wp_nav_menu

25 июл. 2018 г., 17:05:27
Просмотры: 19.8K
Голосов: 0

Я использую этот код, но он не работает

function special_nav_class($classes, $item){
    if( in_array('current-menu-item', $classes) ){
        $classes[] = 'active';
    }
    return $classes;
}
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);

Инспектор элементов:

<li id="menu-item-106" class="d-inline-block menu-item menu-item-type- 
post_type menu-item-object-page current-menu-item page_item page-item-32 
 current_page_item menu-item-106 active"><a href="#">Что-то</a></li>

Класс active добавляется, но дизайн все равно остается прежним.

1
Комментарии

Код работает нормально, и вы можете увидеть это в Инспекторе. Во-первых, очистите все кеши и обновите страницу. Во-вторых, проверьте ваш CSS.

Max Yudin Max Yudin
25 июл. 2018 г. 17:44:34
Все ответы на вопрос 1
2

Вам не понадобится этот PHP-код для стилизации ссылок на текущую страницу в навигации. WordPress по умолчанию добавляет класс (current-menu-item) к ссылкам на текущую страницу. Однако WordPress сам не стилизует эти ссылки — это задача темы. Вы можете добавить правило в CSS темы (обычно это /wp-content/themes/ваша_тема/style.css), чтобы изменить стиль ссылки. Например:

li.current-menu-item a {
    color: pink;
    // или любой другой стиль
}
25 июл. 2018 г. 19:17:31
Комментарии

Спасибо за ответ. Только что проверил style.css и увидел, что current-menu-item нигде не указан.

TestimiUEB TestimiUEB
26 июл. 2018 г. 10:19:25

@TestimiUEB Возможно, вам стоит перечитать мой ответ: "WordPress не стилизует ссылку за вас" ... "Вы можете добавить правило"

Andrew Magill Andrew Magill
26 февр. 2019 г. 20:20:27