Получить объект меню из theme_location

Я хотел бы получить объект меню из его аргумента местоположения темы.

Моя цель состоит в том, чтобы выводить отдельно имя меню и его имя, url и описание.

Пример того, что я ищу:

$menu = get_menu('nav-menu'); //get menu from its theme location echo $menu->name; //displays the menu name foreach($menu->items as $item){ echo '<a href="'.$item->link'">'.$item->name.'</a>'; //displays a link to the item destination echo $item->description; //displays the item description } 

Этот метод похож на то, что вы ищете , используя get_nav_menu_locations () и get_term () :

 $theme_locations = get_nav_menu_locations(); $menu_obj = get_term( $theme_locations[$theme_location], 'nav_menu' ); $menu_name = $menu_obj->name; 

(См. Ссылку для всего, что завершено в пользовательской функции, приведенный выше код просто подчеркивает соответствующие функции WP для получения того, что вы после.)

Или, если вам это нужно в одной строке, просто скопируйте это и замените «change-this-location-slug» самостоятельно.

 $string = get_term(get_nav_menu_locations()['change-this-location-slug'], 'nav_menu')->name;