在你的模板中,你可以检查你是否在头版,然后呼出不同的菜单。
例如:
if(is_front_page() || is_home()){
wp_nav_menu(array(\'theme_location\' => \'primary_navigation\'));
}else{
wp_nav_menu(array(\'theme_location\' => \'secondary_navigation\'));
}
您还必须在功能中注册第二个菜单位置。php文件(如果尚未完成)。
要注册新菜单位置,请执行以下操作:
function register_my_menus() {
register_nav_menus(array(
\'secondary-location\' => __(\'Secondary Location\'),
));
}
add_action( \'init\', \'register_my_menus\' );
缺点是您必须在后端管理两个菜单。如果菜单经常更改,这可能是一个问题,因为您必须更新两个菜单。
相反,您可以过滤wp\\u nav\\u菜单,并在打印菜单之前更改url。例如,这将包含在函数中。php
function change_menu($items){
if(!is_front_page()){
foreach($items as $item){
$item->url = get_bloginfo("url") . "/" . $item->url;
}
}
return $items;
}
add_filter(\'wp_nav_menu_objects\', \'change_menu\');
上面的代码过滤wp\\u nav\\u menu\\u对象。如果你不在网站首页,它会添加完整的url。否则它只返回常规菜单。使用此方法,您不必在管理中创建第二个菜单。