wp_insert_site( array $data )
Inserts a new site into the database.
Parameters
- $data
-
(array) (Required) Data for the new site that should be inserted.
-
'domain'
(string) Site domain. Default empty string. -
'path'
(string) Site path. Default '/'. -
'network_id'
(int) The site's network ID. Default is the current network ID. -
'registered'
(string) When the site was registered, in SQL datetime format. Default is the current time. -
'last_updated'
(string) When the site was last updated, in SQL datetime format. Default is the value of $registered. -
'public'
(int) Whether the site is public. Default 1. -
'archived'
(int) Whether the site is archived. Default 0. -
'mature'
(int) Whether the site is mature. Default 0. -
'spam'
(int) Whether the site is spam. Default 0. -
'deleted'
(int) Whether the site is deleted. Default 0. -
'lang_id'
(int) The site's language ID. Currently unused. Default 0. -
'user_id'
(int) User ID for the site administrator. Passed to thewp_initialize_site
hook. -
'title'
(string) Site title. Default is 'Site %d' where %d is the site ID. Passed to thewp_initialize_site
hook. -
'options'
(array) Custom option $key => $value pairs to use. Default empty array. Passed to thewp_initialize_site
hook. -
'meta'
(array) Custom site metadata $key => $value pairs to use. Default empty array. Passed to thewp_initialize_site
hook.
-
'domain'
Return
(int|WP_Error) The new site's ID on success, or error object on failure.
Source
File: wp-includes/ms-site.php
function wp_insert_site( array $data ) { global $wpdb; $now = current_time( 'mysql', true ); $defaults = array( 'domain' => '', 'path' => '/', 'network_id' => get_current_network_id(), 'registered' => $now, 'last_updated' => $now, 'public' => 1, 'archived' => 0, 'mature' => 0, 'spam' => 0, 'deleted' => 0, 'lang_id' => 0, ); $prepared_data = wp_prepare_site_data( $data, $defaults ); if ( is_wp_error( $prepared_data ) ) { return $prepared_data; } if ( false === $wpdb->insert( $wpdb->blogs, $prepared_data ) ) { return new WP_Error( 'db_insert_error', __( 'Could not insert site into the database.' ), $wpdb->last_error ); } $site_id = (int) $wpdb->insert_id; clean_blog_cache( $site_id ); $new_site = get_site( $site_id ); if ( ! $new_site ) { return new WP_Error( 'get_site_error', __( 'Could not retrieve site data.' ) ); } /** * Fires once a site has been inserted into the database. * * @since 5.1.0 * * @param WP_Site $new_site New site object. */ do_action( 'wp_insert_site', $new_site ); // Extract the passed arguments that may be relevant for site initialization. $args = array_diff_key( $data, $defaults ); if ( isset( $args['site_id'] ) ) { unset( $args['site_id'] ); } /** * Fires when a site's initialization routine should be executed. * * @since 5.1.0 * * @param WP_Site $new_site New site object. * @param array $args Arguments for the initialization. */ do_action( 'wp_initialize_site', $new_site, $args ); // Only compute extra hook parameters if the deprecated hook is actually in use. if ( has_action( 'wpmu_new_blog' ) ) { $user_id = ! empty( $args['user_id'] ) ? $args['user_id'] : 0; $meta = ! empty( $args['options'] ) ? $args['options'] : array(); // WPLANG was passed with `$meta` to the `wpmu_new_blog` hook prior to 5.1.0. if ( ! array_key_exists( 'WPLANG', $meta ) ) { $meta['WPLANG'] = get_network_option( $new_site->network_id, 'WPLANG' ); } // Rebuild the data expected by the `wpmu_new_blog` hook prior to 5.1.0 using allowed keys. // The `$allowed_data_fields` matches the one used in `wpmu_create_blog()`. $allowed_data_fields = array( 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id' ); $meta = array_merge( array_intersect_key( $data, array_flip( $allowed_data_fields ) ), $meta ); /** * Fires immediately after a new site is created. * * @since MU (3.0.0) * @deprecated 5.1.0 Use {@see 'wp_insert_site'} instead. * * @param int $site_id Site ID. * @param int $user_id User ID. * @param string $domain Site domain. * @param string $path Site path. * @param int $network_id Network ID. Only relevant on multi-network installations. * @param array $meta Meta data. Used to set initial site options. */ do_action_deprecated( 'wpmu_new_blog', array( $new_site->id, $user_id, $new_site->domain, $new_site->path, $new_site->network_id, $meta ), '5.1.0', 'wp_insert_site' ); } return (int) $new_site->id; }
Changelog
Version | Description |
---|---|
5.1.0 | Introduced. |
© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_insert_site