मैं अपनी पहली कस्टम वॉकर बनाने के लिए एक समझौते मेनू का निर्माण कर रहा हूँ। शुरुआत करने के लिए मैंने इस उदाहरण का उपयोग किया: http://bitacre.com/2025/custom-nav-menu-walker-for-wordpress-themes
दो कार्य हैं। पहले start_lvl और फिर start_el।
Start_el में ID को $ आइटम-> ID द्वारा कार्यान्वित किया जाता है। किसी को पता है कि मैं कैसे start_lvl में भी ऐसा कर सकता हूं? मुझे (आसपास के निचले स्तर के नेविगेशन) को एक आईडी देने की आवश्यकता है ताकि मैं इसे अकॉर्डियन मेनू में ध्वस्त कर सकूं।
जो मैं उत्पन्न करने की कोशिश कर रहा हूं वह कुछ इस तरह है:
<a href="#collapse2">Titel 2</a>
<ul id="collapse2">Lower Level Menu 2</ul>
<a href="#collapse3">Titel 3</a>
<ul id="collapse3">Lower Level Menu 3</ul>
Start_lvl फ़ंक्शन के लिए मेरा कोड:
// add id's and classes to ul sub-menus
function start_lvl( &$output, $depth, $item ) {
// depth dependent classes
$indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' ); // code indent
$display_depth = ( $depth + 1); // because it counts the first submenu as 0
$pgid = ; // How to get ID in here??
$classes = array(
'sub-menu',
( $display_depth == 1 ? 'accordion-body collapse' : '' ),
( $display_depth % 2 ? 'menu-odd' : 'menu-even' ),
( $display_depth >=2 ? 'sub-sub-menu' : '' ),
'menu-depth-' . $display_depth
);
$ids = array(
'collapse' . $pgid
);
$class_names = implode( ' ', $classes );
$id_name = implode( ' ', $ids );
// build html
$output .= "\n" . $indent . '<ul id="' . $id_name . '" class="' . $class_names . '">' . "\n";
}