こんにちは、次の Walker Nav メニューがあります。
class Walker_Nav_Primary extends Walker_Nav_Menu {
function start_lvl( &$output, $depth ) { //ul
$indent = str_repeat("\t", $depth); // "\t" represents the tab between lines
$subemnu = ($depth > 0) ? ' dropdown-menu ' : '' ;
$output .= "\n$indent <ul class=\"dropdown-menu$submenu depth_$depth\"\n> ";
}
function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { //li a span
$indent = ($depth) ? str_repeat("\t",$depth) : '';
$li_attributes = '' ;
$class_names = $value = '';
//$classes = empty( $item->classes ) ? array() : (array) $item->classes;
$classes[] = ($args->walker->has_children) ? 'dropdown' : '';
$classes[] = ($item->current || $item->current_item_anchestor) ? 'active' : '';
if( ($depth > 0) && $args->walker->has_children ){
$classes[] = 'dropdown-submenu mul';
}
$class_names = join( ' ', apply_filters('nav_menu_css_class', array_filter( $classes ) ) );
$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 ) . ' "' : '';
$output .= $indent . '<li' . $class_names . '>';
$attributes = ! empty( $item->attr_title ) ? ' tittle="' . 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 .= ($args->walker->has_children ) ? ' class="dropdown-toggle" data-toggle="dropdown"' : '';
$item_output = $args->before;
$item_output .= '<a tabindex="-1"' . $attributes . '>';
$item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item-ID ) . $args->link_after;
$item_output .= ( $depth == 0 && $args->walker->has_children ) ? ' <b class="caret"></b></a>' : '</a>';
$item_output .= $args->after;
$output .= apply_filters ( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
}
私が達成しようとしているのは、アクティブなクラスをトップに追加するためにサブメニューが選択されたときです。これは walker nav メニューまたは css を介して可能ですか? jquery を使用したいくつかのソリューションを見ましたが、ソリューションには css または Walker Nav メニューを使用することをお勧めします。