Afișarea numelui meniului folosind wp_nav_menu

15 mar. 2012, 19:19:57
Vizualizări: 33.9K
Voturi: 18

Am un meniu personalizat pe care îl pot apela fără probleme folosind wp_nav_menu. Există vreo modalitate de a afișa numele meniului într-un tag h3 înainte de meniu?

Exemplu:

<h3>Numele Meniului Meu</h3>
<nav>
<ul>
<li>Element Meniu 1</li>
<li>Element Meniu 2</li>
</ul>
</nav>
0
Toate răspunsurile la întrebare 3
2
17

Dacă știi slug-ul meniului, atunci lucrurile sunt mai ușoare, altfel poți folosi această funcție pentru a obține meniul dintr-o locație specifică.

<?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;
}
?>

Apoi

//dacă vrei să obții meniul cu un ID/Slug specific
//$menu_obj =wp_get_nav_menu_object($id_slug_or_name); 

//dacă vrei să obții meniul dintr-o locație specifică
$menu_obj = wpse45700_get_menu_by_location($location); 

echo "<h3>".esc_html($menu_obj->name)."</h3>";
//Afișează meniul aici

Sau, în loc să afișezi HTML-ul, îl poți pasa ca parte a argumentului pentru atributul items în wp_nav_menu.

De exemplu, pentru a afișa meniul la locația '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
Comentarii

Stephen, mulțumesc pentru răspunsul excelent. Îmi cer scuze că sunt începător, dar ai putea oferi cod pentru transmiterea html-ului ca argument. Asta ar rezolva totul. Mulțumesc!

csi csi
15 mar. 2012 20:02:16

Vezi răspunsul actualizat :D

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

înlocuiește id-ul 4 de mai jos cu id-ul meniului tău. dacă nu știi id-ul, mergi în pagina de meniuri din admin, dă click dreapta pe tab-ul meniului pentru care vrei să afișezi titlul, inspectează elementul și id-ul va fi listat ca menu=ID în 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

răspunsul lui stephen este bun. dar am dus-o un pas mai departe:

<?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;
?>

presupunând că ai înregistrat o locație de temă numită "footer_navigation3" și ai atribuit un meniu wp acesteia. acum plasează acest cod oriunde dorești să afișezi meniul tău.

25 iul. 2015 14:20:40