register_nav_menus()
Регистрируется сразу несколько областей меню (расположений меню), к которым затем прикрепляются меню.
Произвольные меню настраиваются в админ-панели и выводятся в шаблоне функцией wp_nav_menu().
При создании меню в него можно добавить разные ссылки: на рубрики, метки, страницы, посты, внешние ссылки и т.д.
Функцию принято вызывать во время события after_setup_theme.
Эта функция автоматически регистрирует поддержку навигационных меню для темы, т.е. используя эту функцию нет необходимости предварительно вызывать функцию: add_theme_support( 'menus' );
В админ-панели в настройках меню, можно включить "расширенные настройки", которые позволят указать различные атрибуты у HTML тегов ссылок в меню.
Хуков нет.
Возвращает
null
. Функция ничего не возвращает.
Использование
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() register nav menus WP 6.2.2
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 ); }