我在这个网站上搜索,发现了很多answers 对于这个问题。他们中的大多数人都没有研究我的主题。
这里有一个解决方案Ifound 它可以根据我的需要工作。
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);
}
此代码将删除
ul
在开始和结束时
wp_nav_menu()
. 所以在我的主题中我只写
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
但当我没有通过管理员添加或激活任何菜单时,问题又来了。
http://domain.com/wp-admin/nav-menus.php
问题:
如何删除<div><ul>**</ul></div>
菜单是否处于活动状态。让我知道
我终于成功了:)functions.php
function wp_nav_menu_no_ul()
{
$options = array(
\'echo\' => false,
\'container\' => false,
\'theme_location\' => \'primary\',
\'fallback_cb\'=> \'default_page_menu\'
);
$menu = wp_nav_menu($options);
echo preg_replace(array(
\'#^<ul[^>]*>#\',
\'#</ul>$#\'
), \'\', $menu);
}
function default_page_menu() {
wp_list_pages(\'title_li=\');
}
header.php
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
最合适的回答,由SO网友:Bainternet 整理而成
函数wp\\u nav\\u menu采用fallback\\u cb参数,如果菜单不存在,该参数是要运行的函数的名称。因此,请将代码更改为以下内容:
function wp_nav_menu_no_ul()
{
$options = array(
\'echo\' => false,
\'container\' => false,
\'theme_location\' => \'primary\',
\'fallback_cb\'=> \'fall_back_menu\'
);
$menu = wp_nav_menu($options);
echo preg_replace(array(
\'#^<ul[^>]*>#\',
\'#</ul>$#\'
), \'\', $menu);
}
function fall_back_menu(){
return;
}
您甚至可以从菜单中删除容器,并通过将更多参数发送到
wp_nav_menu function 希望这有帮助。
SO网友:Pavlo Zamoroka
如果只想打印<a>
标签,您可以这样做:
$primaryMenu = array(
\'theme_location\' => \'primary\',
\'menu\' => \'\',
\'container\' => \'\',
\'container_class\' => false,
\'container_id\' => \'\',
\'menu_class\' => \'menu\',
\'menu_id\' => \'primary-menu\',
\'echo\' => false,
\'fallback_cb\' => \'wp_page_menu\',
\'before\' => \'\',
\'after\' => \'\',
\'link_before\' => \'\',
\'link_after\' => \'\',
\'depth\' => 0,
\'walker\' => \'\'
);
echo strip_tags( wp_nav_menu( $primaryMenu ), \'<a>\' );
SO网友:Sumit Kumar Gupta
我知道这个答案并不完全针对这个问题,但有很多人知道如何在WordPress中删除ul和li标签,并在WordPress中添加另一个标签。
就像应用我的代码之前一样,WordPress在菜单中提供这些类型的输出
<ul class="*****"><li>abc</li></ul>
但是有人想把ul改成div,把li改成tag,那么你应该使用下面的代码
<?php
$menuParameters = array(
\'menu\' => \'primary_menu\',
\'link_before\' => \'<span>\',
\'link_after\' => \'</span>\',
\'before\' => \'<div class="tp-primary-header mui-top-home">\',
\'after\' => \'</div>\',
\'container\' => false,
\'echo\' => false,
\'depth\' => 0,
);
echo strip_tags(wp_nav_menu( $menuParameters ), \'<a><span><div>\' );
?>
这将以以下格式提供输出
<div class="tp-primary-header mui-top-home"><a href="#"><span>ABC</span></a></div>
<div class="tp-primary-header mui-top-home"><a href="#"><span>def</span></a></div>
<div class="tp-primary-header mui-top-home"><a href="#"><span>XYZ</span></a></div>