我正在使用新的Wordpress菜单系统,这是wp_nav_menu()

    <div class="menu-main-menu-container">
   <ul id="menu-main-menu" class="menu">
   <li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21 current_page_item menu-item-28"><a href="http://www.bemang.com/">Trang nhà</a></li>
    <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-29"><a href="http://www.bemang.com/blog/">Blog</a></li>
    <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-30"><a href="http://www.bemang.com/gioi-thieu/">Giới thiệu</a></li>
    </ul>
   </div>


的结果,我只想要这样一个:

<li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21 current_page_item menu-item-28"><a href="http://www.bemang.com/">Trang nhà</a></li>
   <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-29"><a href="http://www.bemang.com/blog/">Blog</a></li>
   <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-30"><a href="http://www.bemang.com/gioi-thieu/">Giới thiệu</a></li>


不,包装div或ul,我一直在尝试几种方法并用google搜索,但没有结果:(

#1 楼

包装div很容易。使用wp_nav_menu()时,请添加以下参数:'container' => false

对于<ul>元素,有一个名为'items_wrap'的参数。请参阅woodchucky的答案以获取有关该主题的更多信息(并投票!)。

评论


非常感谢男人!现在可以使用了。我不熟悉PHP,也不知道我需要将add_filter放到functions.php中。

–团安
2010-10-6 23:11



但这仍然不能解释如何删除div,而是将上面介绍的wrap_class打包。设置为false的容器参数无效。

– Sergio
2011年4月25日在21:50

如果容器参数不起作用,则意味着您不使用wp_nav_menu。您可能正在运行后备cb(默认为wp_page_menu()),原因是未指定菜单或没有分配菜单的菜单位置。

– John P Bloch
2011年4月26日在21:03

#2 楼

wp_nav_menu()接受未记录的参数

'items_wrap'=>'<ul id="%1$s" class="%2$s">%3$s</ul>'

这是由以下人员执行的:
$nav_menu .= sprintf( $args->items_wrap, esc_attr( $wrap_id ), esc_attr( $wrap_class ), $items );

您可以玩周围带有sprintf参数

例如:'items_wrap'=>'%3 $ s'将删除包装的<ul>标签

评论


嘿,酷!欢迎来到WPSE @woodchucky!

– fuxia♦
2011-04-25 23:18

#3 楼

要仅输出li,请将其添加到wp_nav_menu数组中:

'container'      => '',
'items_wrap'    => '%3$s',


#4 楼

'container' => false对我来说失败了,因为我指定了一个不存在的'theme_location''menu'。我修复此问题后便开始起作用。

解决方案来自:wordpress.org/support

#5 楼

要过滤掉包装的div:

add_filter('wp_nav_menu_args', 'prefix_nav_menu_args');
function prefix_nav_menu_args($args = ''){
    $args['container'] = false;
    return $args;
}