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 или следите за мной в социальных сетях.
  • Vladislav: Подправил имеющийся у меня код, по вашим рекомендациям, миниатюры начали отображаться, но они стали очень огромными, что...

  • Миша: Лишь предложил решение. Думаю можно нашаманить и так, чтобы чисто для рубрик было, не уверен только, что обойдётся без и...

  • Алексей: так надо комментарии в рубриках, а не на страницах в category.php а не в page.php

  • Миша: Здравствуйте! Сам WordPress это не поддерживает, но можно пойти хитрым путём. Первое, что пришло мне в голову, это:...

  • Алексей: Миша, здравствуйте! Подскажите, пожалуйста, что нужно, чтобы сделать комментарии на страницах рубрик. Я когда то давно...