WordPress Version: 5.1
/**
* Updates a site in the database.
*
* @since 5.1.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param int $site_id ID of the site that should be updated.
* @param array $data Site data to update. See {@see wp_insert_site()} for the list of supported keys.
* @return int|WP_Error The updated site's ID on success, or error object on failure.
*/
function wp_update_site($site_id, array $data)
{
global $wpdb;
if (empty($site_id)) {
return new WP_Error('site_empty_id', __('Site ID must not be empty.'));
}
$old_site = get_site($site_id);
if (!$old_site) {
return new WP_Error('site_not_exist', __('Site does not exist.'));
}
$defaults = $old_site->to_array();
$defaults['network_id'] = (int) $defaults['site_id'];
$defaults['last_updated'] = current_time('mysql', true);
unset($defaults['blog_id'], $defaults['site_id']);
$data = wp_prepare_site_data($data, $defaults, $old_site);
if (is_wp_error($data)) {
return $data;
}
if (false === $wpdb->update($wpdb->blogs, $data, array('blog_id' => $old_site->id))) {
return new WP_Error('db_update_error', __('Could not update site in the database.'), $wpdb->last_error);
}
clean_blog_cache($old_site);
$new_site = get_site($old_site->id);
/**
* Fires once a site has been updated in the database.
*
* @since 5.1.0
*
* @param WP_Site $new_site New site object.
* @param WP_Site $old_site Old site object.
*/
do_action('wp_update_site', $new_site, $old_site);
return (int) $new_site->id;
}