显示自定义导航的wp_NAV_MENU有问题

时间:2014-10-27 作者:Mehedi Hasan

下面是我想显示的HTML菜单结构wp_nav_menu:

<ul class="right-top">
    <li><a href="#">Join Now</a></li>
    <li><a href="#">Login</a></li>
    <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">English <i class="fa fa-caret-down"></i></a>
        <ul class="dropdown-menu right-menu">
            <li><a href="#">First</a></li>
            <li><a href="#">Second</a></li>
            <li><a href="#">Third</a></li>
            <li><a href="#">Fourth</a></li>
        </ul>
    </li>
</ul>
我可以用下面的函数添加一个“下拉”类,但我不知道如何为锚点添加一个类&;数据切换属性:

add_filter( \'wp_nav_menu_objects\', \'add_menu_parent_class\' );
function add_menu_parent_class( $items ) {
    $parents = array();
    foreach ( $items as $item ) {
        if ( $item->menu_item_parent && $item->menu_item_parent > 0 ) {
            $parents[] = $item->menu_item_parent;
        }
    }
    foreach ( $items as $item ) {
        if ( in_array( $item->ID, $parents ) ) {
            $item->classes[] = \'dropdown\';
        }
    }
    return $items;
}
我还需要为子菜单ul添加一个类:<ul class="dropdown-menu right-menu">

1 个回复
最合适的回答,由SO网友:Mayeenul Islam 整理而成

对于引导,实现WordPress菜单有点棘手。它需要实现一个自定义的Walker菜单类。

下面是一个完整的教程,介绍如何使用引导实现WordPress导航菜单:

  • How to Integrate Bootstrap Navbar Into WordPress Theme Kateryna Belyaeva在GitHub上可以找到自定义Walker类:

    • wp-bootstrap-navwalker - Github 作者:Edward McIntyre,但关于此集成,请注意:

      下面的代码块很重要,我们只接受2级菜单。Bootstrap 3.0开发人员选择导航栏菜单的最大级别为2级。

      <?php /* Primary navigation */
          wp_nav_menu( array(
            \'menu\' => \'top_menu\',
            \'depth\' => 2,
            \'container\' => false,
            \'menu_class\' => \'nav\',
            //Process nav menu using our custom nav walker
            \'walker\' => new wp_bootstrap_navwalker())
          );
          ?>
      
      如果您想要多级菜单,那么Edward还提供了一种具有多级支持的Bootstrap 2.3.2技术:

结束

相关推荐

How to add taxonomy in menus?

书籍(自定义帖子类型)小说(税)科学(税)历史(税)--书籍体裁(税务)小说(术语)科学(学期)历史(学期)以下哪一项是做这件事的“好方法”?对于前一个(这是我目前在管理菜单中的功能,我为每个功能都提供了“register\\u taxonomy”功能),我无法选择要在菜单中显示的“Tax”。而对于后者,我可以将它们添加到菜单中,只需要一个“register\\u taxonomy”函数。