From c21a3065c239a71cf926ef4f0b459817dd61ca7d Mon Sep 17 00:00:00 2001 From: rambou Date: Tue, 16 May 2017 03:27:15 +0300 Subject: [PATCH 01/20] Fixed submenu issues --- inc/nav-walker.php | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/inc/nav-walker.php b/inc/nav-walker.php index 8dfca0a..f49a2bc 100644 --- a/inc/nav-walker.php +++ b/inc/nav-walker.php @@ -30,24 +30,50 @@ function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { $class_names = $class_names ? ' class="mdl-navigation__link ' . esc_attr( $class_names ) . '"' : ''; + if ($args->theme_location == 'drawer' && in_array('menu-item-has-children', $classes)) + return; + $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args ); $id = $id ? ' id="' . esc_attr( $id ) . '"' : ''; $output .= $indent . ''; - $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : ''; - $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : ''; - $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : ''; - $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : ''; - $attributes .= $class_names; + $attributes = !empty($item->attr_title) ? ' title="' . esc_attr($item->attr_title) . '"' : ''; + $attributes .= !empty($item->target) ? ' target="' . esc_attr($item->target) . '"' : ''; + $attributes .= !empty($item->xfn) ? ' rel="' . esc_attr($item->xfn) . '"' : ''; + + if (!in_array('menu-item-has-children', $classes)) + $attributes .= ' href="' . esc_attr($item->url) . '"'; + + $attributes .= ($item->menu_item_parent) ? (!empty($item->url) ? ' href="' . esc_attr($item->url) . '"' : '') : ''; + $attributes .= !empty($item->ID) ? ' id="' . esc_attr($item->ID) . '"' : ''; + if ($item->menu_item_parent && $args->theme_location == 'primary') { + $attributes .= 'class="mdl-menu__item"'; + } else { + $attributes .= $class_names; + } + - $item_output = $args->before; - $item_output .= ''; - $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after; - $item_output .= ''; - $item_output .= $args->after; + global $previous; + $item_output = $args->before; + + if ($args->theme_location == 'primary') { + if (!$item->menu_item_parent && $previous->menu_item_parent) { + $item_output .= ''; + } + + if ($item->menu_item_parent && !$previous->menu_item_parent) { + $item_output .= '