如果您只想更新这一个值,那么可以使用wp_update_site()
:
wp_update_site( 123, [
\'domain\' => \'new-slug.domain.com\',
] );
但要真正更新站点URL/地址,您需要同时更新
siteurl
和
home
站点选项:
switch_to_blog( 123 );
update_option( \'siteurl\', \'new URL here\' );
update_option( \'home\', \'new URL here\' );
restore_current_blog();
下面是一个完整的工作示例,它完成了上述两个步骤:
$main_net = get_network( get_main_network_id() );
$site_id = 123; // ID of the site you\'re updating
// Update the site domain.
$new_domain = \'enter-slug-here\' . \'.\' . preg_replace( \'|^www\\.|\', \'\', $main_net->domain );
$site_id2 = wp_update_site( $site_id, [
\'domain\' => $new_domain,
] );
// And then the site URLs.
if ( $site_id2 && ! is_wp_error( $site_id2 ) ) {
$details = get_site( $site_id );
$new_scheme = parse_url( get_network_option( $site_id, \'siteurl\' ), PHP_URL_SCHEME );
$url = $new_scheme . \'://\' . $new_domain;
switch_to_blog( $site_id );
$url = untrailingslashit( esc_url_raw( $new_scheme . \'://\' . $details->domain . $details->path ) );
update_option( \'siteurl\', $url );
update_option( \'home\', $url );
restore_current_blog();
}
Update Apr 04 2020: 这实际上只是用于子目录多站点安装。
确保新域不是existing username.罢工>
Update Apr 04 2020: 请忽略这一点,我只是没有真正注意到this 用于。和wp_update_site()
如果域已存在,仍将返回错误。:)
此答案仅适用于子域多站点安装