我正在为一个已经建立在 wp 上的网站开发一个 wp 主题,并且在 wp admin 中有一个非常大的菜单,该菜单分为两个菜单。
我想在单个 UL 的主题中合并这两个菜单。目前它在不同的 div 容器和 ul li 中生成两个菜单,并且正在破坏其上应用的样式和 js。
如何将这两个菜单合并到单个容器中的单个 ul li 中?
我正在为一个已经建立在 wp 上的网站开发一个 wp 主题,并且在 wp admin 中有一个非常大的菜单,该菜单分为两个菜单。
我想在单个 UL 的主题中合并这两个菜单。目前它在不同的 div 容器和 ul li 中生成两个菜单,并且正在破坏其上应用的样式和 js。
如何将这两个菜单合并到单个容器中的单个 ul li 中?
好的,所以如果您使用的是 wp_nav_menu()
尝试使用类似的东西
<ul id="MyMenu">
<?php wp_nav_menu( array('menu' => 'FirstMenu', 'items_wrap' => '%3$s' ) ); ?>
<?php wp_nav_menu( array('menu' => 'SecondMenu', 'items_wrap' => '%3$s' ) ); ?>
</ul>
使用 items_wrap 将从每个菜单中删除 ul,因此将菜单封装在已定义的 ul 标记中,wp_nav_menu 将只输出 li 标记。
请参阅删除 ul 包装:http ://codex.wordpress.org/Function_Reference/wp_nav_menu
米
问题是每个wp_nav_menu仍然被包装在单独的 div 中。您还需要关闭这些 div,方法是向每个div 添加“'container' => false” ,如下所示:
<ul id="MyMenu">
<?php wp_nav_menu( array('menu' => 'FirstMenu', 'items_wrap' => '%3$s', 'container' => false ) ); ?>
<?php wp_nav_menu( array('menu' => 'SecondMenu', 'items_wrap' => '%3$s', 'container' => false ) ); ?>
</ul>
您可以将它们与此方法结合使用。它保留了一些由 WP 生成的菜单类。
// two WordPress menus combined into one.
// first menu.
$menu = wp_nav_menu( array(
'theme_location'=> 'secondary', // or whatever location
'fallback_cb' => false,
'container' => '',
'items_wrap' => '%3$s',
'echo' => false
) );
// include all of the menu items from the first inside the second menu.
wp_nav_menu( array(
'theme_location' => 'primary', // or whatever location
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s ' . $menu . '</ul>',
) );