如何将多个菜单设置到同一主题位置

时间:2014-11-05 作者:Zammuuz

在我的主题中,我需要在不同的页面上显示不同的左侧菜单。所以我也注册了一个二级菜单

register_nav_menus(
    array(
      \'primary\' => __( \'Top Menu\' ),
      \'left\' => __( \'Left Menu\' )
    )
  );
我使用了一个名为CE WP-Menu per Page 从页面编辑中显示的下拉列表中选择菜单,以便我可以为不同的页面分配不同的菜单。在我的页面模板中,我编写了以下代码来显示菜单

wp_nav_menu( array( \'container\' => false, \'menu_id\' => \'menu-left-side-menu\', \'menu_class\' => \'menu\', \'theme_location\' => \'left\' ) );
在仪表板->外观->菜单中,我创建了3个菜单(对于测试,实际上菜单的编号取决于创建的页面的编号)。他们是

1.top menu
2. left menu1
3. left menu2
并已分配primary 对于顶部菜单和left 对于左菜单1。一切都很顺利。但我必须为另一个页面分配左菜单2并显示它。当我将左菜单2指定给位置时left , 左菜单1的上一次分配被覆盖。现在左侧菜单1没有显示在页面中。

Problem

有没有办法让wordpress菜单支持将多个菜单分配到同一个菜单主题位置??

我希望我的问题描述是可以理解的。如果需要任何澄清,请告诉我。

1 个回复
SO网友:Robert hue

您可以使用条件is_page 根据需要定义不同的菜单项。

if ( is_page( \'About\' ) ) {

    wp_nav_menu( array( \'container\' => false, \'menu_id\' => \'menu-left-side-menu\', \'menu_class\' => \'menu\', \'theme_location\' => \'about-page\' ) );

} elseif ( is_page( \'Services\' ) ) {

    wp_nav_menu( array( \'container\' => false, \'menu_id\' => \'menu-left-side-menu\', \'menu_class\' => \'menu\', \'theme_location\' => \'services-page\' ) );

} elseif ( is_page( \'Contact\' ) ) {

    wp_nav_menu( array( \'container\' => false, \'menu_id\' => \'menu-left-side-menu\', \'menu_class\' => \'menu\', \'theme_location\' => \'contact-page\' ) );

} else {

    wp_nav_menu( array( \'container\' => false, \'menu_id\' => \'menu-left-side-menu\', \'menu_class\' => \'menu\', \'theme_location\' => \'default-menu\' ) );

}
您可以在主题中定义任意数量的菜单。

register_nav_menus(
    array(
        \'about-page\' => __( \'About Page Menu\' ),
        \'services-page\' => __( \'Services Page Menu\' ),
        \'contact-page\' => __( \'Contact Page Menu\' ),
        \'default-page\' => __( \'Default Page Menu\' ),
        \'left\' => __( \'Left Menu\' )
    )
);
如果不想使用多个菜单,只需在一个菜单中添加所有项目,并在每个页面上隐藏非必需的菜单项WordPress body classes 和CSS样式。

结束

相关推荐

How to add taxonomy in menus?

书籍(自定义帖子类型)小说(税)科学(税)历史(税)--书籍体裁(税务)小说(术语)科学(学期)历史(学期)以下哪一项是做这件事的“好方法”?对于前一个(这是我目前在管理菜单中的功能,我为每个功能都提供了“register\\u taxonomy”功能),我无法选择要在菜单中显示的“Tax”。而对于后者,我可以将它们添加到菜单中,只需要一个“register\\u taxonomy”函数。