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

Как происвоить класс только для ссылки меню первого уровня?

Мне необходимо добавить class и data-toggle в тек a для меню первого уровня. Код ниже добавляет их для всех сссылок меню. Как переделать что бы добавлялось только для пунктов меню первого уровня. Проще говоря что бы к тегу а в sub-menu не добавлялось.
function add_class_to_all_menu_anchors( $atts ) {
    $atts['class'] = 'dropdown-toggle';
	$atts['data-toggle'] = 'dropdown';
    return $atts;
}
add_filter( 'nav_menu_link_attributes', 'add_class_to_all_menu_anchors', 10 );


Вариант с добавлением класса в админке не подходит.
  • Вопрос задан
  • 46 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
valera_91
@valera_91 Автор вопроса
Смог решить только так. У пункта меню у которого есть подпункты присваивается класс
add_filter( 'nav_menu_link_attributes', 'add_class_to_items_link', 10, 3 );

function add_class_to_items_link( $atts, $item, $args ) {
  // check if the item has children
  $hasChildren = (in_array('menu-item-has-children', $item->classes));
  if ($hasChildren) {
    // add the desired attributes:
    $atts['class'] = 'dropdown-toggle';
    $atts['data-toggle'] = 'dropdown';
    $atts['data-target'] = '#';
  }
  return $atts;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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