Ваша проблема с изменением классов элементов меню для мобильной версии (бургер-меню) может быть связана с тем, что для мобильного меню используются другие параметры, и не все фильтры применяются так же, как и для десктопного.
Вот несколько шагов, которые помогут вам настроить классы элементов меню:
1. **Проверьте, как подключается мобильное меню.** Убедитесь, что там используется правильный вызов функции `wp_nav_menu()`. Убедитесь, что указаны правильные параметры `theme_location`.
2. **Обновите функцию `filter_menu_item_css_id`.** В вашем коде есть две строки с `return`, которые не будут работать в одной функции. Вам нужно использовать `if`, чтобы проверить, какое меню обрабатывается. Вот правильный вариант:
```php
add_filter('nav_menu_item_id', 'filter_menu_item_css_id', 10, 4);
function filter_menu_item_css_id($menu_id, $item, $args, $depth) {
if ($args->theme_location === 'header-menu') {
return ''; // Убираем ID для десктопного меню
}
if ($args->theme_location === 'header-mobile-menu') {
return ''; // Убираем ID для мобильного меню
}
return $menu_id; // Возвращаем ID по умолчанию
}
```
3. **Измените классы элементов меню.** Вы можете использовать фильтр `nav_menu_css_class` и `nav_menu_link_attributes`, чтобы добавить свои классы к элементам меню и к ссылкам соответственно.
Вот как это можно сделать:
```php
// Изменение класса <li>
add_filter('nav_menu_css_class', 'filter_menu_item_css_class', 10, 4);
function filter_menu_item_css_class($classes, $item, $args, $depth) {
if ($args->theme_location === 'header-menu') {
// Добавьте свои классы
$classes[] = 'my-desktop-menu-class';
}
if ($args->theme_location === 'header-mobile-menu') {
// Добавьте свои классы
$classes[] = 'my-mobile-menu-class';
}
return $classes;
}
// Изменение атрибутов <a>
add_filter('nav_menu_link_attributes', 'filter_menu_item_link_attributes', 10, 3);
function filter_menu_item_link_attributes($atts, $item, $args) {
if ($args->theme_location === 'header-menu') {
// Добавьте свои атрибуты к ссылкам
$atts['class'] = 'my-desktop-link-class';
}
if ($args->theme_location === 'header-mobile-menu') {
// Добавьте свои атрибуты к ссылкам
$atts['class'] = 'my-mobile-link-class';
}
return $atts;
}
```
4. **Проверьте стили CSS.** Если классы применяются, но не отображаются так, как вы ожидали, проверьте, могут ли ваши CSS-стили конфликтовать с существующими стилями в вашей теме или в стилях, добавленных плагинами.
С этими изменениями вы сможете настроить классы и атрибуты для элементов мобильного меню так же, как и для десктопного. Попробуйте внести изменения и проверить результат в вашем WordPress.