has_nav_menu() — проверяет, добавлено ли меню в указанную область темы

Кстати! Про то, как кодить меню в WordPress, у меня на сайте есть видеоурок.

Опишу суть функции при помощи скриншотов, итак, функция возвращает true, если:

меню добавлено в область темы

false в том случае, если:

в область темы не добавлено меню

Кстати, на скриншотах «Primary Navigation» — это именно название области, а в аргументе нужно передавать её ярлык, предположим ярлык будет primary.

has_nav_menu( $location )

$location
(строка) (обязательное) — область темы, области задаются через функцию register_nav_menu() — там можно и узнать все ярлыки областей, чуть более подробно тут.

Примеры использования

Самый банальный такой пример — если меню в указанной области существует — выводим его:

if ( has_nav_menu( 'top_menu' ) ){
	wp_nav_menu( array( 'theme_location' => 'top_menu' );
}

Во многих старых темах ещё не было фишек с менюхами, поэтому они выводились в виде обычного списка рубрик и страниц.

То есть в данном случае если меню не добавлено в область, то будет выводиться список категорий через wp_list_categories().

if ( has_nav_menu( 'top_menu' ) ){
	wp_nav_menu( array( 'theme_location' => 'top_menu' );
} else {
	wp_list_categories('title_li=');
}

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 1

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал