在我的主题中,我需要在不同的页面上显示不同的左侧菜单。所以我也注册了一个二级菜单
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菜单支持将多个菜单分配到同一个菜单主题位置??
我希望我的问题描述是可以理解的。如果需要任何澄清,请告诉我。
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样式。