wp_nav_menu() 覆盖 ul 属性

wp_nav_menu() overrides ul attributes

我以前构建过 WP 模板,但我以前是从头开始构建它们,我没有遇到过任何这样的问题。这次我决定使用 html5blank 样板。现在我在 wp_nav_menu() 中遇到了这个问题,其中 WordPress 覆盖了我尝试在 items_wrap:

中添加的属性
    wp_nav_menu(
      array(
        'theme_location'  => 'header-menu',
        'menu'            => '',
        'container'       => 'div',
        'container_class' => '',
        'container_id'    => '',
        'menu_class'      => 'menu',
        'menu_id'         => '',
        'echo'            => true,
        'fallback_cb'     => 'wp_page_menu',
        'before'          => '',
        'after'           => '',
        'link_before'     => '',
        'link_after'      => '',
        'items_wrap'      => '<ul class="nav navbar-nav">%3$s</ul>',
        'depth'           => 0,
        'walker'          => ''
      )
    );

WordPress 文档声明 items_wrap 应正确分配为 <ul id="%1$s" class="%2$s">%3$s</ul>。下面还有这个过滤器函数,据说应该替换字符串值,但我找不到任何文档来说明我如何处理它。

function my_wp_nav_menu_args($args = '')
{
    $args['container'] = false;
    return $args;
}

不知道我没听错——你想让 ul 元素包含 类 "nav" 和 "navbar-nav" 吗?然后你只需要在你的数组中更改 "menu_class":

wp_nav_menu(
  array(
    'theme_location'  => 'header-menu',
    'menu_class'      => 'nav navbar-nav'
  )
);

我通过从数组中完全删除 item_wrap 并在 menu_class 中分配来解决这个问题。