WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

register_nav_menus() WP 3.0

Регистрируется сразу несколько расположений меню, к которым затем прикрепляются меню.

Произвольные меню настраиваются в админ-панели и выводятся в шаблоне функцией wp_nav_menu().

При создании меню в него можно добавить разные ссылки: на рубрики, метки, страницы, посты, внешние ссылки и т.д.

Регистрация произвольного меню для админки

Функцию принято вызывать во время события after_setup_theme.

Эта функция автоматически регистрирует поддержку навигационных меню для темы, т.е. используя эту функцию нет необходимости предварительно вызывать функцию: add_theme_support( 'menus' );

В админ-панели в настройках меню, можно включить "расширенные настройки", которые позволят указать различные атрибуты у HTML тегов ссылок в меню.

Основа для: register_nav_menu()

Хуков нет.

Возвращает

Функция ничего не возвращает.

Использование

register_nav_menus( $locations );
$locations(массив) (обязательный)
Массив с названиями (ключи массива) и описаниями (значения ключей) каждого создаваемого меню.

Примеры

#1. Пример, регистрации сразу двух меню.

Такая регистрация сразу включает поддержку навигационных меню у темы.

add_action( 'after_setup_theme', function(){
	register_nav_menus( [
		'header_menu' => 'Меню в шапке',
		'footer_menu' => 'Меню в подвале'
	] );
} );

Выводить меню в шаблоне будем функцией wp_nav_menu().

Заметки

  • Global. Массив. $_wp_registered_nav_menus

Список изменений

С версии 3.0.0 Введена.

Код register_nav_menus() WP 5.5.1

wp-includes/nav-menu.php
<?php
function register_nav_menus( $locations = array() ) {
	global $_wp_registered_nav_menus;

	add_theme_support( 'menus' );

	foreach ( $locations as $key => $value ) {
		if ( is_int( $key ) ) {
			_doing_it_wrong( __FUNCTION__, __( 'Nav menu locations must be strings.' ), '5.3.0' );
			break;
		}
	}

	$_wp_registered_nav_menus = array_merge( (array) $_wp_registered_nav_menus, $locations );
}

Cвязанные функции

Из метки: nav_menu (меню навигации)

Еще из раздела: Другие функции темы

9 комментов