Visualizzare il Nome del Menu usando wp_nav_menu

15 mar 2012, 19:19:57
Visualizzazioni: 33.9K
Voti: 18

Ho un menu personalizzato che posso richiamare correttamente utilizzando wp_nav_menu. C'è un modo per visualizzare il nome del menu all'interno di un tag h3 prima del menu stesso?

Esempio:

<h3>Il Mio Nome Menu</h3>
<nav>
<ul>
<li>Voce Menu 1</li>
<li>Voce Menu 2</li>
</ul>
</nav>
0
Tutte le risposte alla domanda 3
2
17

Se conosci lo slug del menu, allora le cose sono più semplici, altrimenti puoi usare questa funzione per ottenere il menu in una posizione specifica.

<?php
function wpse45700_get_menu_by_location( $location ) {
    if( empty($location) ) return false;

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

    $menu_obj = get_term( $locations[$location], 'nav_menu' );

    return $menu_obj;
}
?>

Quindi

//se stai cercando il menu con un ID/Slug specifico
//$menu_obj =wp_get_nav_menu_object($id_slug_or_name); 

//se stai cercando il menu in una posizione specifica
$menu_obj = wpse45700_get_menu_by_location($location); 

echo "<h3>".esc_html($menu_obj->name)."</h3>";
//Visualizza il menu qui

Oppure, invece di fare echo dell'html, potresti passarlo come parte dell'argomento per l'attributo items in wp_nav_menu.

Ad esempio, per visualizzare il menu nella posizione 'primary':

$location = 'primary';
$menu_obj = wpse45700_get_menu_by_location($location ); 
wp_nav_menu( array('theme_location' => $location, 'items_wrap'=> '<h3>'.esc_html($menu_obj->name).'</h3><ul id=\"%1$s\" class=\"%2$s\">%3$s</ul>') ); 
15 mar 2012 19:56:06
Commenti

Stephen, grazie per la fantastica risposta. Scusa se sono un principiante, ma potresti fornire il codice per passare l'html come argomento? Risolverebbe tutto. Grazie!

csi csi
15 mar 2012 20:02:16

Vedi la risposta aggiornata :D

Stephen Harris Stephen Harris
15 mar 2012 20:18:24
0

Sostituisci l'ID 4 qui sotto con l'ID del tuo menu. Se non conosci l'ID, vai nella pagina dei menu nell'admin, fai clic destro sulla scheda del menu di cui vuoi visualizzare il titolo, ispeziona elemento e l'ID sarà elencato come menu=ID nel link.

<?
$_menu_object = wp_get_nav_menu_object( 4 );
$nav_menu_selected_title = $_menu_object->name;
echo $nav_menu_selected_title;
?>
6 mar 2013 22:23:14
0

la risposta di stephen è buona. ma io la porto un passo oltre:

<?php 
$location = 'footer_navigation3';
if (has_nav_menu($location)) :
    $menu_obj = get_menu_by_location($location); 
    wp_nav_menu( array( 
        'theme_location'  => $location,
        'items_wrap'=> '<strong>'.esc_html($menu_obj->name).'</strong><ul id="%1$s" class="%2$s">%3$s</ul>'
    )); 
endif;
?>

supponendo che tu abbia registrato una posizione del tema chiamata "footer_navigation3" e assegnato un menu wp a quella posizione. ora posiziona questo codice dove vuoi visualizzare il tuo menu.

25 lug 2015 14:20:40