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

Wordpress: как удалить и изменить классы в меню?

Всем добра, уважаемые знатоки!
Прошу совета из разряда, что я делаю не так и как это исправить.
Суть следующая:
Пытаюсь изменить классы для меню в состоянии burger, задача в том, что бы присвоить свой класс для li и a.
Для версии desktop, изменения внеслись корректно, а вот что с бургером не так, ни как не могу понять.
Проблема в том, что для li класс не меняется, a для самой ссылки класс не присваивается.
Собственно код function.php:
register_nav_menus([
		'header-menu' => 'Шапка сайта',
    'header-mobile-menu' => 'Меню для мобильных',
		'footer-menu' => 'Подвал сайта'
	]);

// основные параметры меню
add_filter('wp_nav_menu_args', 'filter_wp_menu_args');
function filter_wp_menu_args($args)
{
    if ($args['theme_location'] === 'header-menu') {
        $args['container'] = 'nav';
        $args['menu_id'] = 'menu';
        $args['container_class'] = 'header__nav nav';
        $args['items_wrap'] = '<ul id="nav__list" class="%2$s">%3$s</ul>';
        $args['menu_class'] = 'nav__list';
        $args['depth'] = '2';
    }

    if ($args['theme_location'] === 'header-mobile-menu') {
        $args['container'] = 'ul';
        $args['menu_id'] = 'mobile-nav__list';
        $args['menu_class'] = 'mobile-nav__list';
        $args['depth'] = '2';
  }

    return $args;
}

// Смена атрибут ID у тега LI
add_filter('nav_menu_item_id', 'filter_menu_item_css_id', 10, 4);
function filter_menu_item_css_id($menu_id, $item, $args, $depth)
{
    return $args->theme_location === 'header-menu' ? '' : $menu_id;
    return $args->theme_location === 'header-mobile-menu' ? '' : $menu_id;
};

// Смена атрибут class у тега li desktop 
add_filter('nav_menu_css_class', 'filter_nav_menu_css_classes', 10, 4);
function filter_nav_menu_css_classes($classes, $item, $args, $depth)
{
    if ($args->theme_location === 'header-menu') {
        $classes = ['link_nav'];
        if ($item->current) {
            $classes[] = 'link_nav--active';
        }
    }

// Смена атрибут class у тега li burger 
    if ($args->theme_location === 'header-mobile-menu') {
      $classes = ['delete_class'];
    }
    return $classes;
};

//Классы для ссылок desktop 
add_filter('nav_menu_link_attributes', 'filter_nav_menu_link_attributes', 10, 4);
function filter_nav_menu_link_attributes($atts, $item, $args, $depth)
{
    if ($args->theme_location === 'header-menu') {
        $atts['class'] = 'link-header';

        if ($item->current) {
            $atts['class'] .= ' active';
        }
    }

//Классы для ссылок burger
    if ($args->theme_location === 'header-mobile-menu') {
      $atts['class'] = 'my_class_2';

      if ($item->current) {
          $atts['class'] .= ' active';
      }
  }
    return $atts;
};
  • Вопрос задан
  • 7 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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