好的,我设法解决了这个问题。在这里为感兴趣的人发布答案。
我不太明白register\\u nav\\u menus只注册菜单位置。这是我使用的代码,它在同一位置有条件地使用不同的命名菜单。要使其工作,必须使用创建菜单时指定的确切名称。或者,正如我所做的那样,以编程方式创建它们,以确保它们始终存在并正确命名。
<?php
if ( preg_match (\'#^/company/#\', $_SERVER[\'REQUEST_URI\']) ) {
wp_nav_menu( array( \'menu\' => \'company-primary\', \'theme_location\' => \'primary\', \'fallback_cb\'=> false ) );
}
else {
wp_nav_menu( array( \'menu\' => \'private-primary\', \'theme_location\' => \'primary\', \'fallback_cb\'=> false ) );
}
?>
我使用此代码设置了一些默认菜单:
// Set up default menus
$private_menu_exists = wp_get_nav_menu_object( \'private-primary\' );
if( !$private_menu_exists){
$menu_id = wp_create_nav_menu( \'private-primary\' );
}
$company_menu_exists = wp_get_nav_menu_object( \'company-primary\' );
if( !$company_menu_exists){
$menu_id = wp_create_nav_menu( \'company-primary\' );
}