अद्यतन: वर्डप्रेस 3.7 के रूप में - एक कस्टम वॉकर का उपयोग करने के रूप में यह वर्डप्रेस कोर में का ध्यान रखा है कोई जरूरत (अक्टूबर 2013), सीएसएस वर्गों विषय मेनू में बच्चे मेनू आइटम और पृष्ठों इंगित करने के लिए जोड़ा गया है।
CSS क्लासेस का नाम menu-item-has-children
और है page_item_has_children
।
जल्दी में किसी के लिए एक पूर्ण समाधान के लिए (जान फेब्री के पिछले जवाब के लिए क्रेडिट), नीचे पूर्ण कार्यान्वयन देखें।
अपने थीम के टेम्प्लेट में नेविगेशन को आउटपुट करें:
wp_nav_menu( array(
'theme_location' => 'navigation-primary',
'container' => false,
'container_class' => '',
'container_id' => '',
'menu_class' => '',
'menu_id' => '',
'walker' => new Selective_Walker(),
'depth' => 2
)
);
फिर, अपने विषय में निम्नलिखित शामिल करें functions.php
:
class Selective_Walker extends Walker_Nav_Menu {
function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output ) {
$id_field = $this->db_fields['id'];
if ( is_object( $args[0] ) ) {
$args[0]->has_children = !empty( $children_elements[$element->$id_field] );
}
return parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
}
function start_el( &$output, $item, $depth, $args ) {
if ( $args->has_children ) {
$item->classes[] = 'has_children';
}
parent::start_el(&$output, $item, $depth, $args);
}
}
परिणामी HTML आउटपुट निम्न सदृश होगा:
<ul>
<li><a href="#">Home</a></li>
<li class="has_children"><a href="#">About</a>
<ul class="sub-menu">
<li><a href="#">Our Mission</a></li>
</ul>
</li>
<li><a href="#">Services</a></li>
<li class="has_children"><a href="#">Products</a>
<ul class="sub-menu">
<li><a href="#">Lorem Ipsum</a></li>
<li><a href="#">Lorem Ipsum</a></li>
</ul>
</li>
<li><a href="#">Contact Us</a></li>
</ul>
वर्डप्रेस के वॉकर क्लास का उपयोग करने के बारे में अधिक जानकारी के लिए, वॉकर क्लास को समझें ।
का आनंद लें!