Mostrare il Titolo del Menu nella funzione wp_nav_menu array

7 gen 2015, 12:21:01
Visualizzazioni: 20.4K
Voti: 6

Sto lottando con questo problema da un po'. Voglio richiamare un menu ma includere il titolo del menu sopra l'elenco del menu. Il codice base che ho è il seguente -

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

Questo produce un elenco come segue -

Voce Menu 1 Voce Menu 2 Voce Menu 3

Ma voglio che appaia così -

TITOLO Voce Menu 1 Voce Menu 2 Voce Menu 3

Qualcuno ha qualche idea?

Grazie in anticipo.

1
Commenti

Usa wp_get_nav_menu_name() per ottenere il nome del menu: $name = wp_get_nav_menu_name( 'resources' ); (crediti a @merhawi-fissehaye, https://wordpress.stackexchange.com/a/323653/48203).

Philipp Bammes Philipp Bammes
3 feb 2020 11:38:33
Tutte le risposte alla domanda 2
1

Non puoi ottenere il titolo del menu utilizzando wp_nav_menu(), devi ottenere l'oggetto menu come segue:

//Sostituisci con l'ID del tuo menu
$menu_ID = 5;
$nav_menu = wp_get_nav_menu_object( $menu_ID );
// poi mostra il nome del menu
echo $nav_menu->name;

Con il codice sopra, puoi inserire il nome del menu in wp_nav_menu() utilizzando il parametro items_wrap. Per esempio:

$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 gen 2015 12:31:54
Commenti

Se ha funzionato e ha risposto alla tua domanda, per favore, contrassegna la risposta come accettata.

cybmeta cybmeta
7 gen 2015 12:52:05
0

È meglio non fare affidamento sugli ID del menu, la mia soluzione risolverà dinamicamente il menu associato alla posizione corrente.

1- Prima dobbiamo definire una funzione che cerchi il menu nel nostro 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- Poi mostriamo il titolo del menu visualizzato in qualsiasi posizione desideriamo:

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

basta sostituire 'menufooterleft' con la posizione registrata nel tuo tema.

8 set 2017 04:05:37