Функция wp_get_nav_menu_name()
используется в WordPress для получения названия навигационного меню, связанного с конкретной областью (location) меню. Эта функция особенно полезна, когда нужно динамически вывести название меню, чтобы оно отображалось на фронтенде.
wp_get_nav_menu_name( string $location ): string
Параметры:
- $location (строка, обязательный) — Идентификатор области меню. Это значение указывается при регистрации области меню через функцию
register_nav_menu()
.
Возвращаемое значение:
Функция возвращает название меню в виде строки, если для указанной области меню назначено меню в админке. Если меню не назначено, возвращает пустую строку.
Пример 1: Регистрация области меню и вывод названия меню
В этом примере мы зарегистрируем область меню с идентификатором primary
и названием «Основное меню». Затем в админке создадим меню под названием «Главное меню» и закрепим его за этой областью. После этого, с помощью wp_get_nav_menu_name()
, выведем название меню.
// Регистрация области меню "Основное меню" с идентификатором "primary"
add_action( 'after_setup_theme', 'register_primary_nav_menu' );
function register_primary_nav_menu() {
register_nav_menu( 'primary', 'Основное меню' );
}
// Получение названия меню, связанного с областью "primary"
$menu_name = wp_get_nav_menu_name( 'primary' );
// Вывод названия меню
echo esc_html( $menu_name ); // Выведет: Главное меню
Пример 2: Динамический заголовок меню на основе его названия
Часто требуется динамически выводить название меню на странице перед отображением самих элементов меню. В этом примере мы проверим, существует ли меню для области footer
, и выведем его название, если оно есть.
if ( has_nav_menu( 'footer' ) ) {
// Получение названия меню для области "footer"
$footer_menu_name = wp_get_nav_menu_name( 'footer' );
// Вывод названия меню
echo '<h2 class="footer-menu__title">' . esc_html( $footer_menu_name ) . '</h2>';
// Вывод самого меню
wp_nav_menu( array( 'theme_location' => 'footer' ) );
}
Регистрация областей меню
Для того чтобы использовать функцию wp_get_nav_menu_name()
, необходимо зарегистрировать области меню с помощью функции register_nav_menu()
или register_nav_menus()
.
Пример регистрации двух областей меню:
// Регистрация двух областей меню: "Главное меню" и "Меню в футере"
add_action( 'after_setup_theme', 'theme_setup_menus' );
function theme_setup_menus() {
register_nav_menus( array(
'primary' => 'Главное меню',
'footer' => 'Меню в футере',
) );
}
После этого в админке WordPress можно будет привязать созданные меню к указанным областям. Затем функция wp_get_nav_menu_name()
сможет возвращать их названия.
Заключение
Функция wp_get_nav_menu_name()
является мощным инструментом для динамического получения названий меню в WordPress. Используя её в сочетании с функциями регистрации и вывода меню, вы сможете гибко управлять отображением меню на сайте.