प्रदर्शन मेनू का नाम wp_nav_menu का उपयोग करके


17

मेरे पास एक कस्टम मेनू है जिसे मैं wp_nav_menu का उपयोग करके ठीक कह सकता हूं। क्या मेनू से पहले h3 टैग के अंदर मेनू नाम प्रदर्शित करने का कोई तरीका है?

पूर्व।

<h3>My Menu Name</h3>
<nav>
<ul>
<li>Menu Item 1</li>
<li>Menu Item 2</li>
</ul>
</nav>

जवाबों:


15

यदि आप मेनू के स्लग को जानते हैं, तो चीजें आसान हैं, अन्यथा आप इस फ़ंक्शन का उपयोग किसी निर्दिष्ट स्थान पर मेनू प्राप्त करने के लिए कर सकते हैं।

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

फिर

//if you after the menu the menu with a specific ID / Slug
//$menu_obj =wp_get_nav_menu_object($id_slug_or_name); 

//if you after the menu at a specific location
$menu_obj = wpse45700_get_menu_by_location($location); 

echo "<h3>".esc_html($menu_obj->name)."</h3>";
//Display menu here

या, html को प्रतिध्वनित करने के बजाय, आप इसे आइटम विशेषता के तर्क के भाग के रूप में पारित कर सकते हैं wp_nav_menu

उदाहरण के लिए, 'प्राथमिक' स्थान पर मेनू प्रदर्शित करने के लिए:

$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>') ); 

1
स्टीफन, महान प्रतिक्रिया के लिए धन्यवाद। एक noob होने के लिए क्षमा करें, लेकिन क्या आप html को तर्क के रूप में पारित करने के लिए कोड प्रदान कर सकते हैं। जो सब कुछ हल कर देगा। धन्यवाद!
csi

अद्यतन उत्तर देखें: D
स्टीफन हैरिस

4

अपने मेनू की आईडी के साथ नीचे आईडी 4 को बदलें। यदि आपको पता नहीं है कि आईडी एडमिन के मेनू पेज में जाती है, तो उस मेनू के टैब पर राइट क्लिक करें जिसके लिए आप शीर्षक को गूँजना चाहते हैं, एलिमेंट का निरीक्षण करें और लिंक में मेनू को मेनू = आईडी के रूप में सूचीबद्ध किया जाएगा।

<?
$_menu_object = wp_get_nav_menu_object( 4 );
$nav_menu_selected_title = $_menu_object->name;
echo $nav_menu_selected_title;
?>

2

स्टीफन का जवाब अच्छा है। लेकिन मैंने इसे एक कदम आगे रखा:

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

यह मानते हुए कि आपके पास "footer_navigation3" नामक एक थीम स्थान पंजीकृत है और उस के लिए एक wp मेनू असाइन किया गया है। अब इस कोड को रखें जहाँ आप कभी भी अपना मेनू प्रदर्शित करना चाहते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.