2017-06-06 102 views
0

我想在WordPress菜单中的任何子菜单项后添加一个div。我工作在下面的代码在functions.php文件:在WordPress子菜单项后添加div

add_filter('nav_menu_link_attributes', 'SubMenuCheck', 10, 3); 
function SubMenuCheck($atts, $item, $args) { 
    if (in_array('menu-item-has-children', $item->classes)) { 
    $args->after = '<div class="click">+</div>'; 
    } 
    return $atts; 
} 

上面的代码添加了新的div <div class="click">+</div>但第一个“后一直把它应用到所有父和子项的菜单项,有子女“类:?

menu issue example

有谁知道这是为什么重复......我只希望div来显示与menu-item-has-children类项目。

感谢

回答

1

我不使用nav_menu_link_attributes过滤器,添加一个按钮(这是语义正确的)成为热点,用于切换的孩子,我使用以下命令:

function prefix_add_button_after_menu_item_children($item_output, $item, $depth, $args) { 

    if ($args->theme_location == 'primary') { 

     if (in_array('menu-item-has-children', $item->classes) || in_array('page_item_has_children', $item->classes)) { 
      $item_output = str_replace($args->link_after . '</a>', $args->link_after . '</a><button class="sub-menu-toggle" aria-expanded="false" aria-pressed="false"><span class="screen-reader-text">' . _x('open dropdown menu', 'verb: open the menu', 'text-domain') . '</span></button>', $item_output); 
     } 
    } 

    return $item_output; 
} 
add_filter('walker_nav_menu_start_el', 'prefix_add_button_after_menu_item_children', 10, 4); 
+1

厂非常感谢! @Christina –

相关问题