当我尝试将新菜单添加到模板文件时,会自动生成一个新的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&amp;分类并删除div
<div class="menu">
我该如何解决这个问题......
答案 0 :(得分:1)
实际的html输出包含page_item
类的项目。这意味着Wordpress显示页面后备菜单。默认情况下,回退菜单在输出中包含<div class="menu">
。
请参阅Wordpress reference默认设置中的'fallback_cb' => 'wp_page_menu',
选项。 将此选项设置为false
将禁用后备菜单,但您仍需要在Wordpress后端设置菜单。
要解决此问题,只需通过“外观&gt;菜单”在Wordpress后端添加一个菜单,并确保选中包含主题位置的框(在您的情况下可能是“主菜单”)当你那样做的时候。然后Wordpress将不再使用后备菜单,您的选项将适用。
您可以通过添加到菜单项而不是menu-item
的班级page_item
来识别html输出中的正确菜单。
答案 1 :(得分:0)
可能你可以试试这个 -
$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的更多信息
答案 2 :(得分:0)
你需要这个。
wp_nav_menu(array(
'theme_location' => 'main-menu',
'container' => 'div',
'container_class' => 'menu',
'items_wrap' => '<ul>%3$s</ul>'
));
答案 3 :(得分:0)
嗯,问题是太老了,但如果他找到一种方法来删除额外的DIV(像我一样),这可能对其他人有帮助。
解决方案是'fallback_cb'
参数。如果没有为该主题位置指定菜单,则会调用回退函数。然后,该回调函数可能不存在'container'
参数,或者它没有被传递,但这会导致EXTRA DIV。
因此,在这种情况下,解决方案是使'fallback_cb'
为空字符串并强制管理员创建菜单并将其与'theme_location'
相关联。