Как получить название меню в WordPress?
Я настраиваю боковое меню с несколькими меню и разделами. Каждый раздел содержит заголовок (название меню) и список ссылок под ним (пункты меню) - я вывел элементы, но как мне вывести название меню?
Спасибо,
Джейкоб

В WordPress версии 4.9.0 и выше вы можете использовать
wp_get_nav_menu_name($location)
wp_nav_menu_name для дополнительной информации

Вы можете получить доступ к метаданным меню с помощью функции wp_get_nav_menu_object
ПО ИМЕНИ:
$menu = wp_get_nav_menu_object("my mainmenu" );
ПО СЛАГУ:
$menu = wp_get_nav_menu_object("my-mainmenu" );
Возвращаемый объект выглядит следующим образом:
Object (
term_id => 4
name => My Menu Name
slug => my-menu-name
term_group => 0
term_taxonomy_id => 4
taxonomy => nav_menu
description =>
parent => 0
count => 6
)
Для отображения имени:
echo $menu->name;

Вы уже передаёте название меню, зачем получать его снова? Каждый раз, когда он будет менять меню на другое или обновлять название меню в админке, ему придётся обновлять эти значения.

@DavidLee Я не понимаю, почему вы отклонили мой ответ, идея та же самая, я просто указал возможный параметр, принимаемый функцией wp_get_nav_menu_object
, вот и всё.

Если хотите, вы также можете получить метаданные меню, передав его ID следующим образом: $menu = wp_get_nav_menu_object ('id');

задумайтесь, вы говорите, что чтобы получить название меню
, вам нужно само название меню
, то же самое с ID

Привет, Дэвид, ты поднимаешь хороший вопрос, но я не совсем понимаю его. Не мог бы ты объяснить подробнее в своём ответе?

Вы можете получить имя меню следующим образом, используя его расположение. Таким образом, если меню будет обновлено или вы назначите другое меню, вам не придётся вносить изменения в этом месте:
$locations = get_nav_menu_locations(); // получаем все расположения меню
$menu = wp_get_nav_menu_object($locations['name_of_the_menu_location']);// получаем объект меню
echo $menu->name; // выводим имя меню
Параметр 'name_of_the_menu_location'
— это тот же самый, который вы используете для вывода меню с помощью функции wp_nav_menu
:
<?php
wp_nav_menu(array(
'theme_location' => 'footer'// это значение
));
?>
