【问题标题】:Cannot add role="navigation" to wp_nav_menu()无法将角色 =“导航”添加到 wp_nav_menu()
【发布时间】:2012-03-08 13:35:35
【问题描述】:

我希望我的自定义导航菜单有一个属性“角色”,其值为“导航”。 wp_nav_menu() 似乎没有接受属性参数。我错过了什么吗?

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

【问题讨论】:

    标签: nav


    【解决方案1】:

    一直在寻找,但后来发现您可以将 'container' 设置为 false。

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

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

    【讨论】:

    • 我喜欢这个解决方案。很干净。
    【解决方案2】:

    有点晚了,但这里是如何做到的:

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

    【讨论】:

    • 这仍然是一个 hack。
    【解决方案3】:

    这是我的方法:

    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 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 2016-08-09
      • 2017-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多