Как добавить классы к menu на Wordpress? Есть Menu на WordPress
имеет класс .menu
подрубаю меню через wp таким образом '',
'menu' => '',
'container' => 'ul',
'container_class' => 'menu',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '%3$s',
'depth' => 0,
'walker' => '',
) ); ?> , но так как элементы внутри меню тоже имеют классы, то они не стлизизуются
Как добавить классы к элементам внутри меню?
Вообще не понимаю, почему разработчики WP не добавили этот пункт в массив

21 Авг 2019 в 06:21
184 +1
0
Ответы
1

Для добавления классов к элементам внутри меню на WordPress, вам нужно использовать атрибут walker с собственным классом. В этом классе вы можете переопределить метод start_el, чтобы добавить нужные вам классы к элементам меню.

Пример кода:

class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
function start_el( &$output, $item, $depth = 0, $args = null, $id = 0 ) {
$classes = empty( $item->classes ) ? array() : (array) $item->classes;
$classes[] = 'custom-class'; // Добавляем свой класс к элементу меню
$output .= '<li class="' . esc_attr( implode( ' ', $classes ) ) . '">';
$output .= $args->link_before . '<a href="' . $item->url . '">' . $item->title . '</a>' . $args->link_after;
}
}
wp_nav_menu( array(
'theme_location' => '',
'menu' => '',
'container' => 'ul',
'container_class' => 'menu',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id = "%1$s" class = "%2$s">%3$s</ul>',
'depth' => 0,
'walker' => new Custom_Walker_Nav_Menu(), // Используем свой класс Walker
) );

В этом примере Custom_Walker_Nav_Menu - это ваш собственный класс, который наследуется от Walker_Nav_Menu и переопределяет метод start_el. Внутри этого метода вы добавляете нужные вам классы к элементам меню.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 89 837 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир