10

我正在为一个已经建立在 wp 上的网站开发一个 wp 主题,并且在 wp admin 中有一个非常大的菜单,该菜单分为两个菜单。

我想在单个 UL 的主题中合并这两个菜单。目前它在不同的 div 容器和 ul li 中生成两个菜单,并且正在破坏其上应用的样式和 js。

如何将这两个菜单合并到单个容器中的单个 ul li 中?

4

3 回答 3

21

好的,所以如果您使用的是 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

于 2012-04-27T09:20:26.620 回答
14

问题是每个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>
于 2013-01-08T16:07:18.837 回答
4

您可以将它们与此方法结合使用。它保留了一些由 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>',
) );
于 2016-11-07T23:54:24.510 回答