【发布时间】:2020-11-11 13:48:53
【问题描述】:
我有一些 WordPress 导航菜单,我想在 <a> 标签下打印每个导航菜单。我尝试了以下代码:
<?php
wp_nav_menu(
array(
'menu' => 'Main Menu',
'theme_location' => 'api-footer-main',
'menu_class' => 'hex__footer_link',
'container' => 'a',
)
);
?>
尝试使用<a> 作为容器,但这是打印:
<ul>
<li><a>Menu</a></li>
<li><a>Menu</a></li>
<li><a>Menu</a></li>
</ul>
我想删除整个<ul><li> 结构。我的菜单应打印为:
<a>Menu</a>
<a>Menu</a>
我也尝试了以下方法,删除了<ul> 标签,但<li> 仍然存在:
<?php
function wp_nav_menu_no_ul() {
$options = array(
'echo' => false,
'container' => false,
'theme_location' => 'api-footer-main',
'fallback_cb' => 'fall_back_menu'
);
$menu = wp_nav_menu( $options );
echo preg_replace( array(
'#^<ul[^>]*>^<li[^>]*>#',
'#</li></ul>$#'
), '', $menu );
}
function fall_back_menu() {
return;
}
我使用 <?php wp_nav_menu_no_ul(); ?> 调用它
我怎样才能做到这一点?
【问题讨论】:
-
你必须使用导航助行器。
-
这甚至没有意义......菜单通常包含链接,并且链接不能嵌套在 HTML 中。不知道你在这里的意思是什么,请澄清你的问题。
-
您可能对
container的含义有误解吗?这是 WP 将 围绕 生成的菜单。如果您想在现有链接之后输出菜单,则应将其放在模板文件中的正确位置。 -
你只是想要一堆没有
<ul>和<li>东西的<a>标签吗?这是你的问题吗? -
@ChrisHaas 是的,你是对的,但请注意我也想为 menu 添加自定义类