这是我找到的一个解决方案,它可以根据我的需要运行。的
ul
。所以在我的主题中,我只写了function wp_nav_menu_no_ul()
{
$options = array(
'echo' => false,
'container' => false,
'theme_location' => 'primary'
);
$menu = wp_nav_menu($options);
echo preg_replace(array(
'#^<ul[^>]*>#',
'#</ul>$#'
), '', $menu);
}
,但是当我不通过管理员添加或激活任何菜单时,问题又来了。
wp_nav_menu()
问题:
无论菜单是否处于活动状态,如何删除
http://domain.com/wp-admin/nav-menus.php
。让我知道最后我成功了:)
评论
为什么要在再次添加UL时删除它?您可以使用menu_class和menu_id参数在UL上设置class和/或id属性。我要用超级鱼。如果激活了菜单,则menu_class和menu_id才起作用。如果菜单不存在,则menu_class和menu_id不是
而是。多数民众赞成为什么对wp_nav_menu()有太多疑问,您可以对其进行测试:)
本文标签:
menus
functions
#1 楼
wp_nav_menu函数采用一个参数fallback_cb,该参数是菜单不存在时要运行的函数的名称。因此将代码更改为以下内容: >
您甚至可以从菜单中删除容器,并通过向wp_nav_menu函数发送更多参数来做其他事情
希望有帮助。
评论
@בנייתאתרים-感谢您的解释。但是我在这里变得越来越模糊。根据nav-menu-template.php的注释fallback_cb-如果菜单不存在,则将触发回调函数。默认为“ wp_page_menu”。设置为false时不进行任何回退如果将fallback_cb设置为false,应该如何替换wp_nav_menu_no_ul()才能工作?因为它现在返回空白。
–哈哈
2011-1-28 11:49
现在理解:)非常感谢בנייתאתרים。顺便说一句,我怎么发音你的昵称?我的哈哈
–哈哈
11年1月28日在12:08
大声笑,很高兴你去。
–互联网
11年1月28日在12:17
我想知道同一件事,我想是希伯来语,出于好奇,这将是准确的翻译.. :)
– t31os
2011年1月28日15:55
:)是的,它是希伯来语和它的昵称。
–互联网
2011-1-28在16:17
#2 楼
实际上,WordPress默认情况下支持此功能:items_wrap
的默认值为<ul id=\"%1$s\" class=\"%2$s\">%3$s</ul>
。评论
这是正确的答案。在添加
之后,以编程方式查找并替换以删除
的其他答案只是向后
。
–mikemike
15年3月20日在10:51
'container'=> false,如果您也想摆脱包装的
–乔治·迪米特里亚迪斯(George Dimitriadis)
17年8月10日在10:11
默认情况下,它在WordPress中是真正可配置的。谢谢!
–阿卜杜拉·阿尔巴布(Abdalla Arbab)
18年4月2日在11:44
最佳答案,无需黑客
–艾迪
19年2月2日,下午2:58
在wp 5.2中这对我不起作用
–rafaelphp
19年6月30日在16:48
#3 楼
下面的代码应该简单地做到这一点。#4 楼
如果只想打印<a>
标签,则可以使用以下方式:评论
这项工作对我来说很完美,在wp 5.2中仅设置`'items_wrap'=>'%3 $ s'`无效
–rafaelphp
19年6月30日在16:50
#5 楼
对我来说,这是行得通的:希望对您有所帮助。
#6 楼
我知道这个答案并不完全是针对这个问题的,但是有很多人知道如何在WordPress中删除ul和li标签,并在WordPress中添加另一个标签。像在应用我的代码之前WordPress在菜单中提供了这些类型的输出/>
这给出以下格式的输出