ВОПРОС
Сейчас я пытаюсь разработать собственную WordPress – тему. В качестве основы я взял стартовый шаблон Underscores и популярный фреймворк Bootstrap. Пока работа идет хорошо и без критических ошибок, но все же хотелось бы реализовать одну функцию, и здесь мне нужна ваша помощь.
Я хочу изменить wp_nav_menu таким образом, чтобы вместо класса по умолчанию он подставлял. Если же это невозможно, то чтобы назначались хотя бы оба класса. Мне крайне важно сделать это, потому что я собираюсь использовать active из Bootstrap.
Для большей ясности приведу примеры.
Вот так выглядит код моего меню сейчас:
<ul id=”menu-main-menu”>
<li id=”menu-item-14″><a href=””>item1</a></li>
<li id=”menu-item-12″><a href=””>item2</a></li>
</ul>
А мне нужно, чтобы это выглядело примерно таким образом:
<ul id=”menu-main-menu”>
<li id=”menu-item-14″><a href=””>item1</a></li>
<li id=”menu-item-12″><a href=””>item2</a></li>
</ul>
Самое главное, чтобы решение, которое вы предложите, было с правильным подходом. Скажу сразу, я точно не хочу ничего менять в шаблоне самого меню и не собираюсь использовать JavaScript.
ОТВЕТ
Окей, друг. Я тебя услышал. Единственное, что тебе нужно сделать, это одно простое действие. Достаточно лишь вставить вот этот код в файл functions.php твоей темы:
add_filter(‘nav_menu_css_class’ , ‘special_nav_class’ , 10 , 2);
function special_nav_class ($classes, $item) {
if (in_array(‘current-menu-item’, $classes) ){
$classes[] = ‘active ‘;
}
return $classes;
}