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

Опишу суть функции при помощи скриншотов, итак, функция возвращает 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=');
}

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

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...