17 posts
  • Bought between 1 and 9 items
  • Exclusive Author
  • France
  • Has been a member for 1-2 years
chaman_matrix says

I’m making a mobile version of my site, the problem I’m facing is that the dropdown menu does not take me to my first page on the list. For example, I have set “Home” as the first item on my navbar, all the other pages will work but my navbar will not take me to the homepage. This is the code that I’m using:

<?php
class Walker_Nav_Menu_Dropdown extends Walker_Nav_Menu{
 var $to_depth = -1;
   function start_lvl(&$output, $depth){
     $output .= '</option>';
   }
   function end_lvl(&$output, $depth){
     $indent = str_repeat("\t", $depth); // don't output children closing tag
   }
   function start_el(&$output, $item, $depth, $args){
   $indent = ( $depth ) ? str_repeat( " ", $depth * 4 ) : '';
   $class_names = $value = '';
   $classes = empty( $item->classes ) ? array() : (array) $item->classes;
   $classes[] = 'menu-item-' . $item->ID;
   $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item,  $args ) );
   $class_names = ' class="' . esc_attr( $class_names ) . '"';
   $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );
   $id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : '';
   $value = ' value="'. $item->url .'"';
   $output .= '<option'.$id.$value.$class_names.'>';
   $item_output = $args->before;
   $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args- >link_after;
   $output .= $indent.$item_output;
   }
   function end_el(&$output, $item, $depth){
   if(substr($output, -9) != '</option>')
         $output .= "</option>"; // replace closing  with the option tag
    }
}
?>

And this to call it:

<?php wp_nav_menu(array
('theme_location' => 'category-nav',
'walker' => new Walker_Nav_Menu_Dropdown(),
'items_wrap' => '<select id="sec-selector" name="sec-selector" onchange="location.href =    document.getElementById(\'sec-selector\').value;">%3$s</select>',
'container_id' => 'mobile_menu_secondary'));?>

Please help!

by
by
by
by
by
by