Afișarea titlului meniului în interiorul funcției array wp_nav_menu

7 ian. 2015, 12:21:01
Vizualizări: 20.4K
Voturi: 6

M-am chinuit cu asta pentru un timp. Vreau să apelez un meniu dar să includ și titlul meniului deasupra listei de meniu. Codul de bază pe care îl am este următorul -

<?php wp_nav_menu( array(
'container'       => 'div',
'container_class' => 'rmm-footer',
'theme_location'  => 'resources'
));
?>

Acesta produce o listă astfel -

Element Meniu 1 Element Meniu 2 Element Meniu 3

Dar vreau să apară astfel -

TITLU Element Meniu 1 Element Meniu 2 Element Meniu 3

Are cineva vreo idee?

Mulțumesc anticipat.

1
Comentarii

Folosește wp_get_nav_menu_name() pentru a obține numele meniului: $name = wp_get_nav_menu_name( 'resources' ); (credit către @merhawi-fissehaye, https://wordpress.stackexchange.com/a/323653/48203).

Philipp Bammes Philipp Bammes
3 feb. 2020 11:38:33
Toate răspunsurile la întrebare 2
1

Nu poți obține titlul meniului folosind wp_nav_menu(), trebuie să obții obiectul meniului astfel:

//Schimbă cu ID-ul meniului tău
$menu_ID = 5;
$nav_menu = wp_get_nav_menu_object( $menu_ID );
// apoi afișează numele meniului
echo $nav_menu->name;

Cu codul de mai sus, poți insera numele meniului în wp_nav_menu() folosind parametrul items_wrap. De exemplu:

$menu_ID = 5;
$nav_menu = wp_get_nav_menu_object( $menu_ID );
wp_nav_menu( array(
                 'theme_location'  => 'resources',
                 'container'       => 'div',
                 'container_class' => 'rmm-footer',
                 'items_wrap'      => '<ul><li id="item-id">'.$nav_menu->name.'</li>%3$s</ul>'
             )
);
7 ian. 2015 12:31:54
Comentarii

Dacă a funcționat și ți-a răspuns la întrebare, te rog, marchează răspunsul ca acceptat.

cybmeta cybmeta
7 ian. 2015 12:52:05
0

Este mai bine să nu ne bazăm pe ID-ul meniului, soluția mea va identifica dinamic meniul atașat pentru locația curentă.

1- Mai întâi trebuie să definim o funcție care caută meniul în fișierul nostru functions.php:

function monoprog_get_menu_by_location($location) {
    if(empty($location)) return false;

    $locations = get_nav_menu_locations();
    if(!isset($locations[$location])) return false;

    return get_term( $locations[$location], 'nav_menu' );
}

2- Apoi putem afișa titlul meniului afișat în orice locație dorim:

$menu_obj = monoprog_get_menu_by_location('menufooterleft');
echo "<h3>".esc_html($menu_obj->name)."</h3>";

doar înlocuiți 'menufooterleft' cu locația înregistrată în tema dumneavoastră.

8 sept. 2017 04:05:37