Задать вопрос
Ivseti
@Ivseti
Фронтенд HTML, CSS и немного JS с PHP

Как правильно добавить меню в верстке WP 5.8?

Не могу добавить корректно меню в WP. В header.php добавляю:
<? wp_nav_menu([
                'menu' => 'head_menu',
                'container' => false,
                'menu_class' => 'top-menu',
                'echo' => true,
                'fallback_cb' => 'wp_page_menu',
                'item_wrap' => '<ul class="header__nav">%3$s</ul>',
                'depth' => 1
                
            ]); ?>


Пробовал регистрировать двумя способами:
register_nav_menus( array(
	'head_menu' => 'Меню в шапке'
) );


И этим:

add_theme_support( 'menus' );

Всегда получаю ошибку вида:
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\www\mebelsheldon.ru\wp-includes\class-walker-nav-menu.php on line 205


При это меню выводится просто текстом без формирования ссылки:

https://skr.sh/sBDJoSzWy5G?a

Как правильно добавить меню ?

Апдейт. Посмотрел код на этой строчке, там как раз формируется ссылка. Но пока еще не пойму в чем дело.

Сейчас выводится так :
<li id="menu-item-125" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-125"><a>О компании</a></li>


Тег a есть, а самой ссылки и href нет!
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Средний 8 комментариев
Пригласить эксперта
Ответы на вопрос 1
Ivseti
@Ivseti Автор вопроса
Фронтенд HTML, CSS и немного JS с PHP
Разобрался. Хотя до функции тоже была ошибка, сделал подключение, как из дефолтной темы, через экшн after_setup_theme. Теперь все работает. Меню выводится:)

Проблема была в хуке, видимо я его неправильно написал..
// Мой первый фильтр

add_filter ('nav_menu_link_attributes', 'filter_nav_menu_link_attributes', 10,3);

function filter_nav_menu_link_attributes ( $atts, $item, $args) {

	if ($args->menu === 'Main') {
		$atts['class'] = 'header__nav-item';

		if ( $item->current) {
			$atts['class'] .= 'header__nav-item-active';
		}
	}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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