Obține obiectul meniului din theme_location
Aș dori să obțin un obiect de meniu din argumentul său theme_location.
Scopul meu este să afișez separat numele meniului și numele elementelor sale, URL-ul și descrierea.
Exemplu a ceea ce caut:
$menu = get_menu('nav-menu'); // obține meniul din locația sa în temă
echo $menu->name; // afișează numele meniului
foreach($menu->items as $item){
echo '<a href="'.$item->link'">'.$item->name.'</a>'; // afișează un link către destinația elementului
echo $item->description; // afișează descrierea elementului
}
Această metodă pare a fi ceea ce cauți, folosind get_nav_menu_locations() și get_term():
$theme_locations = get_nav_menu_locations();
$menu_obj = get_term( $theme_locations[$theme_location], 'nav_menu' );
$menu_name = $menu_obj->name;
(Vezi link-ul pentru întregul cod încapsulat într-o funcție personalizată; codul de mai sus evidențiază doar funcțiile relevante din WP pentru a obține ceea ce dorești.)

Începând cu WordPress 3.0.0, puteți utiliza funcția wp_get_nav_menu_object
pentru a obține obiectul WP_Term
corespunzător și a accesa numele acestuia.
Obținerea ID-ului meniului pentru a-l transmite funcției wp_get_nav_menu_object
se poate face prin intermediul funcției get_nav_menu_locations
.
Extinderea exemplului dvs.:
$menu_id = get_nav_menu_locations()[ 'nav-menu' ];
$menu = wp_get_nav_menu_object( $menu_id );
$items = wp_get_nav_menu_items( $menu_id );
echo $menu->name; // Afișează numele meniului.
foreach($items as $item){
echo '<a href="'. esc_url( $item->url )'">'. esc_html( $item->title ).'</a>'; // Afișează un link către destinația elementului.
echo $item->description; // Afișează descrierea elementului.
}
