如果菜单有子菜单,如何添加 <i> 项到 wp_nav_menu

How to add <i> item if menu has sub-menu into wp_nav_menu

我有这种类型的菜单,我希望将这种菜单转换成wp_nav_menu

<li><a href="#">menu ab</a></li>                                
<li ><a href="#">menu bc<i class="hover-ind fa fa-angle-down" aria-hidden="true"></i></a></li>
<ul class="sub-menu">
<li><a href="#">sub menu ab</a></li>
</ul>

如您所见,如果菜单有子菜单,那么我必须添加 <i></i> 代码片段以显示带有特定菜单的向下箭头。

所以我正在尝试,如果菜单有子菜单,则将带有锚点 link 的 <i></i> 添加到 li

如果菜单有子菜单,我可以通过以下代码向 li 添加属性:

add_filter( 'nav_menu_link_attributes', 'wpse154485_add_aria_haspopup_atts', 10, 3 );
function wpse154485_add_aria_haspopup_atts( $atts, $item, $args ) {
  if (in_array('menu-item-has-children', $item->classes)) {
    $atts['aria-haspopup'] = 'true';
  }
  return $atts;
}

但如果菜单有子菜单,我需要添加一个 <i></i> 代码片段,如果有人知道,请帮助。

TIA

您需要修改 Walker_Nav_Menu 以添加 HTML 标记。 查看下面的 GitHub link 示例代码。

https://github.com/wp-bootstrap/wp-bootstrap-navwalker

我已经解决了这个问题。可能如果有人在将来寻找答案,那么我的解决方案可以帮助他们。这是我找到的一个博客,它正是针对下拉指示器的解决方案。 http://dksolution.in/add-dropdown-arrow-indicators-to-wordpress-menu-items-that-have-submenus/