Obține obiectul meniului din theme_location

25 sept. 2011, 21:42:21
Vizualizări: 24.6K
Voturi: 10

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
}
0
Toate răspunsurile la întrebare 3
0
16

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.)

25 sept. 2011 22:02:28
0

Sau dacă ai nevoie într-o singură linie, copiază aceasta și înlocuiește "change-this-location-slug" cu valoarea ta.

$string = get_term(get_nav_menu_locations()['change-this-location-slug'], 'nav_menu')->name;
24 sept. 2016 19:35:58
0

Î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.
}
15 aug. 2022 18:17:11