从wp_nav_menu输出</div>中删除<div>包装器

时间:2011-10-10 09:58:35

标签: wordpress

我正在尝试从wp_nav_menu()函数中删除包装器。

我已通过container =&gt;对于arguements数组是假的,并在我的functions.php中添加了一个钩子,但它仍然显示了包装器。

function my_wp_nav_menu_args( $args )
{
    $args['menu'] = false;
    $args['menu_class'] = false;
    $args['container'] = false;
    $args['container_class'] = false;
    $args['show_home'] = true;

    return $args;
}

任何想法为什么?

4 个答案:

答案 0 :(得分:4)

阅读codex:Function Reference/wp nav menu

您可能需要在functions.php文件中设置主题位置,然后将菜单分配给它?

这就是在codex中所说的:

  

为了删除导航容器,指定了主题位置   functions.php并在函数wp_nav_menu中的参数中使用(例如。   'theme_location'=&gt; 'primary-menu')必须分配一个菜单   在管理! Othervise参数'container'=&gt; '假'是   忽略。

如果您需要注册位置,可以使用以下内容:

// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
    'primary' => __( 'Primary Navigation', 'Your_Theme' ),
) );

然后在wp_nav_menu()函数

中传递它
wp_nav_menu( array( 'theme_location' => 'primary', 'container' => false ) );

希望这有帮助!

答案 1 :(得分:0)

我认为此参数无法使用布尔数据类型,请阅读此Function Reference/wp nav menu

因此,删除此div包装器的最佳方法是将其替换为ul,例如以下示例

wp_nav_menu( array(
  'menu' => 'header-nav_menu',
  'theme_location'    => 'header-nav_menu',
  'container'         => 'ul', //To replace div wrapper with ul 
  'menu_class'        => 'YOUR CLASS'//Add classes to your ul
 )
);

答案 2 :(得分:0)

wp_nav_menu(array(
    'container' => '',
    'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'theme_location' => 'footer-1',
));

现有菜单必须与您的位置相关联(在我的示例中为“ footer-1”),否则,始终会有一个div包装器。

答案 3 :(得分:0)

我已将null传递给容器,并且菜单未包装在div标签中。

wp_nav_menu(
    array('menu' => 'Bočni',
        'container' => null
    )
);