解决了这个问题。
假设使用一个名为“primary”的菜单位置的主题,并且您刚刚创建了一个id包含在$menu\\u id中的菜单
$menu_locations = get_nav_menu_locations();
$new_menu_locations = array_map( \'absint\', [\'primary\' => $menu_id]);
$menu_locations = array_merge( $menu_locations, $new_menu_locations );
set_theme_mod( \'nav_menu_locations\', $menu_locations );
Wordpress本身就是这样保存更新的菜单位置的
wp-admin/nav-menus.php