В вордпресс для вызова меню в коде используется функция 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”. Вы можете их заменить на свои, или оставить только один, или добавить сколько угодно ещё классов.