无法将role =“navigation”添加到wp_nav_menu()

时间:2012-03-08 13:35:36

标签: nav

我希望我的自定义导航菜单具有值为“navigation”的属性“role”。 wp_nav_menu()似乎不接受属性参数。我错过了什么吗?

<nav role="navigation">...</nav>

3 个答案:

答案 0 :(得分:3)

正在寻找一段时间,但后来看到你可以将'container'设置为false。

<nav role="navigation">
<?php
  $defaults = array(
    'container'       => false,
    'items_wrap'      => '<ul>%3$s</ul>'
  );
  wp_nav_menu( $defaults );
?>
</nav>

返回一个中间没有div的简单导航。

答案 1 :(得分:1)

有点晚了,但这是怎么做的:

<?php
echo strip_tags( wp_nav_menu( array(
    'echo' => false,
    'items_wrap' => '<nav role="navigation">%3$s</nav>',
) ), '<a><nav>' );
?>

答案 2 :(得分:0)

这是我的方法:

add_filter( 'wp_nav_menu', function( $nav_menu, $args ) {
    if( 'primary' != $args->theme_location || 'nav' != $args->container )
        return $nav_menu;

    $class      = $args->container_class ? ' class="' . esc_attr( $args->container_class ) . '"' : ' class="menu-'. $menu->slug .'-container"';
    $id         = $args->container_id ? ' id="' . esc_attr( $args->container_id ) . '"' : '';
    $search     = '<'. $args->container . $id . $class . '>';
    $replace    = '<'. $args->container . $id . $class . ' role="navigation">';
    return str_replace( $search, $replace, $nav_menu );
}, 10, 2 );