Задать вопрос
@colorkid

Как добавить свои классы всем пунктам меню wordpress?

Всем привет. Я натягиваю меню и сам сайт на wordpress. Сделал так, в functions добавил
if (function_exists('add_theme_support')) {
add_theme_support('menus');
}

а header(где лежит менюшка) добавил

<? wp_nav_menu(array('menu' => 'top-menu', 'menu_class' => 'main-menu__ul')); ?>

все хорошо, но у меня li имеет класс main-menu__li и ссылка имеет класс main-menu__a, и вот они конечно не добавились к данным элементам.

Подскажите пожалуйста, как добавить свои классы всем элементам навигации?
сайт vita.colorkid.ru
  • Вопрос задан
  • 1828 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
smidl
@smidl
WordPress-разработчик
Костыль раз
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class($classes, $item){
     if(is_single() && $item->title == 'Blog'){
             $classes[] = 'current-menu-item';
     }
     return $classes;
}


Костыль два
// получаем а не выводим меню
$menu = wp_nav_menu( array( 'echo' => 0, ) );
// добавляем ко всем пунктам класс my__class
$menu = str_replace('class="menu-item', 'class="menu-item my__class', $menu );
// выводим на экран
echo $menu;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы