[英]Wordpress wp_nav_menu coming extra div tag
当我尝试向模板文件添加新菜单时,会自动出现一个新的div,我不知道这是怎么来的。 现在我想离开这个div。
HTML:
<nav class="clear-after" id="header-menu">
<!-- __toggle -->
<div id="main-menu-toggle"></div>
<!-- __level 1 -->
<div class="menu">
<ul>
<li class="page_item page-item-22"><a href="http://localhost/one2one/index.php/blog/">Blog</a></li>
<li class="page_item page-item-8 page_item_has_children"><a href="http://localhost/one2one/index.php/company/">Company</a></li>
<li class="page_item page-item-20"><a href="http://localhost/one2one/index.php/contact/">Contact</a></li>
<li class="page_item page-item-6 current_page_item"><a href="http://localhost/one2one/">Home</a></li>
<li class="page_item page-item-18"><a href="http://localhost/one2one/index.php/services/">Services</a></li>
</ul>
</div>
</nav>
PHP代码:
<nav id="header-menu" class="clear-after">
<!-- __toggle -->
<div id="main-menu-toggle"></div>
<!-- __level 1 -->
<?php
wp_nav_menu(array(
'theme_location' => 'main-menu',
'container'=>'',
'container_class' => '',
'items_wrap'=>'%3$s',
'menu_id' => 'main-menu'
));
?>
</nav>
我想像下面这样。 需要添加一个ID和类并删除div
<div class="menu">
我该如何解决...
实际的html输出包含具有page_item
类的项目。 这意味着Wordpress将显示页面后备菜单。 备用菜单默认在输出中包含<div class="menu">
。
请参阅Wordpress参考中默认设置中的'fallback_cb' => 'wp_page_menu',
选项。 将此选项设置为false
将禁用后备菜单,但是您仍需要在Wordpress后端中设置菜单。
要解决此问题,只需通过“ 外观>菜单 ”在Wordpress后端中添加一个菜单,并确保在执行此操作时选中包含主题位置的框(在您的情况下可能是“主菜单”)。 然后,Wordpress将不再使用后备菜单,您的选项将适用。
您可以通过将类menu-item
添加到菜单项而不是page_item
来识别html输出中的正确菜单。
也许您可以尝试一下-
$defaults = array(
'theme_location' => '',
'menu' => '',
'container' => 'div',
'container_class' => '',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0,
'walker' => ''
);
wp_nav_menu( $defaults );
请在wordpress网站上查看有关wp_nav_menu的更多信息
您需要这个。
wp_nav_menu(array(
'theme_location' => 'main-menu',
'container' => 'div',
'container_class' => 'menu',
'items_wrap' => '<ul>%3$s</ul>'
));
好吧,这个问题太老了,但是如果其他人想办法删除多余的DIV(例如我),这可能会对其他人有所帮助。
解决方案是'fallback_cb'
参数。 如果没有为该主题位置指定菜单,则调用fallback函数。 然后,该回调函数的'container'
参数可能不存在或未传递,但这导致EXTRA DIV。
因此,在这种情况下,解决方案是使'fallback_cb'
空字符串,并强制管理员创建菜单并将该菜单与该'theme_location'
相关联。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.