Custom crawler function gives strange output only in my custom theme
-
I am using the following function to make the nav a select list
<nav class="page-name"> <?php class Walker_Nav_Menu_Dropdown extends Walker_Nav_Menu{ function start_lvl(&$output, $depth){ $indent = str_repeat("\t", $depth); // don't output children opening tag (<code><ul></code>) } function end_lvl(&$output, $depth){ $indent = str_repeat("\t", $depth); // don't output children closing tag } function start_el(&$output, $item, $depth, $args){ // add spacing to the title based on the depth $item->title = str_repeat("?", $depth * 2).$item->title; parent::start_el(&$output, $item, $depth, $args); // no point redefining this method too, we just replace the li tag... $output = str_replace('<li', '<option', $output); } function end_el(&$output, $item, $depth){ $output .= "</option>\n"; // replace closing </li> with the option tag } } wp_nav_menu(array( 'theme_location' => 'primary', // your theme location here 'walker' => new Walker_Nav_Menu_Dropdown(), 'items_wrap' => '<select>%3$s</select>', )); ?> </nav>
In twentyeleven theme it gives the right html:
<nav class="page-name"> <div class="menu-nav-menu-container"> <select> <option id="menu-item-59" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-59">Sample Page </option> <option id="menu-item-60" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-60">??News</option> <option id="menu-item-65" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-65">About </option> <option id="menu-item-62" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-62">??Contact Us</option> <option id="menu-item-63" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-63">??Our Location</option> <option id="menu-item-61" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-61">History</option> <option id="menu-item-64" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-64">Links</option> </select> </div> </nav>
However in my theme it gives me this:
<nav class="page-name"> <div class="menu"> <ul> <option id="menu-item-54" class="menu-item-54"><a></a></option> <option id="menu-item-24" class="menu-item-24"><a></a></option> <option id="menu-item-30" class="menu-item-30"><a></a></option> <option id="menu-item-18" class="menu-item-18"><a></a></option> <option id="menu-item-22" class="menu-item-22"><a></a></option> <option id="menu-item-26" class="menu-item-26"><a></a></option> <option id="menu-item-13" class="menu-item-13"><a></a></option> <option id="menu-item-28" class="menu-item-28"><a></a></option> <option id="menu-item-15" class="menu-item-15"><a></a></option> <option id="menu-item-2" class="menu-item-2"><a></a></option> <option id="menu-item-20" class="menu-item-20"><a></a></option> </ul> </div> </nav>
I both themes I use the same primary menu, and in both the normal menu crawler works fine.
What could be causing this?
- The topic ‘Custom crawler function gives strange output only in my custom theme’ is closed to new replies.