В вордпресс для вызова меню в коде используется функция wp_nav_menu(). В неё могут передаваться различные параметры, такие как название меню (которое вы указали при его создании), которое нужно вывести, контейнер и css-класс для него. Также и класс можно указать для тега <ul> через эти параметры.
Однако в стандартной функции нет параметра, который бы добавил css-класс в пункт меню li. Можно, конечно, обращаться к стандартным классам и всё на этом. Но мы столкнулись с ситуацией, когда вёрстка уже подготовлена (не нами,) а нам её нужно натянуть на wordpress. Чтобы не проделывать лишнюю работу, заменяя названия классов, которые в вёрстке имеют свою структуру и логику, на названия классов wordpress, мы просто добавим несколько строк кода, которые добавят названия классов из вёрстки.
Первое, что нужно сделать, добавить в functions.php функцию, которая добавляет новый параметр в wp_nav_menu().
function add_additional_class_on_li($classes, $item, $args) { if(isset($args->add_li_class)) { $classes[] = $args->add_li_class; } return $classes; } add_filter('nav_menu_css_class', 'add_additional_class_on_li', 1, 3);
И затем при вызове меню в коде, просто добавить этот параметр ( ‘add_li_class’ => ‘your-class-name1 your-class-name-2’) в общий список. Например, это может выглядеть так:
$args = array( 'container' => '', 'theme_location'=> 'your-theme-loc', 'depth' => 1, 'fallback_cb' => false, 'add_li_class' => 'your-class-name1 your-class-name-2' ); wp_nav_menu($args);
Или без выноса параметров в отдельную переменную, можно сделать так:
<?php wp_nav_menu('add_li_class' => 'your-class-name1 your-class-name-2']); ?>
На всякий случай упомянем, что в примере указано два класса “your-class-name1” и “your-class-name-2”. Вы можете их заменить на свои, или оставить только один, или добавить сколько угодно ещё классов.