Как получить название меню в WordPress?

18 февр. 2017 г., 20:55:52
Просмотры: 36.9K
Голосов: 10

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

Спасибо,

Джейкоб

0
Все ответы на вопрос 3
2
30

В WordPress версии 4.9.0 и выше вы можете использовать

wp_get_nav_menu_name($location)

wp_nav_menu_name для дополнительной информации

22 дек. 2018 г. 09:15:42
Комментарии

То, что я искал +1 … должен быть принятым ответом

GDY GDY
28 нояб. 2019 г. 15:27:42

Этот ответ должен быть вверху или помечен как текущий правильный ответ.

William Patton William Patton
22 нояб. 2022 г. 00:38:24
6
15

Вы можете получить доступ к метаданным меню с помощью функции 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;
18 февр. 2017 г. 21:01:26
Комментарии

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

David Lee David Lee
18 февр. 2017 г. 21:12:50

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

Den Isahac Den Isahac
18 февр. 2017 г. 21:21:30

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

Den Isahac Den Isahac
18 февр. 2017 г. 21:26:07

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

David Lee David Lee
18 февр. 2017 г. 21:41:16

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

Jacob Henning Jacob Henning
21 февр. 2017 г. 02:59:35

можешь указать, какую именно часть не понимаешь? Название футера меняется при назначении другого меню, поэтому лучше получать название через его расположение, что-то типа получить название меню, которое находится в позиции футера

David Lee David Lee
25 февр. 2017 г. 20:43:25
Показать остальные 1 комментариев
0

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

$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'// это значение
     ));
?>
18 февр. 2017 г. 21:04:32