wp_insert_site() – Inserts a new site into the database.
You appear to be a bot. Output may be restricted
Description
Inserts a new site into the database.
Usage
$int|WP_Error = wp_insert_site( $data );
Parameters
- $data
- ( array ) required – { Data for the new site that should be inserted.
- $domain
- ( string ) required – Site domain. Default empty string.
- $path
- ( string ) required – Site path. Default '/'.
- $network_id
- ( int ) required – The site's network ID. Default is the current network ID.
- $registered
- ( string ) required – When the site was registered, in SQL datetime format. Default is the current time.
- $last_updated
- ( string ) required – When the site was last updated, in SQL datetime format. Default is the value of $registered.
- $public
- ( int ) required – Whether the site is public. Default 1.
- $archived
- ( int ) required – Whether the site is archived. Default 0.
- $mature
- ( int ) required – Whether the site is mature. Default 0.
- $spam
- ( int ) required – Whether the site is spam. Default 0.
- $deleted
- ( int ) required – Whether the site is deleted. Default 0.
- $lang_id
- ( int ) required – The site's language ID. Currently unused. Default 0.
- $user_id
- ( int ) required – User ID for the site administrator. Passed to the
wp_initialize_site
hook. - $title
- ( string ) required – Site title. Default is 'Site %d' where %d is the site ID. Passed to the
wp_initialize_site
hook. - $options
- ( array ) required – Custom option $key => $value pairs to use. Default empty array. Passed to the
wp_initialize_site
hook. - $meta
- ( array ) required – Custom site metadata $key => $value pairs to use. Default empty array. Passed to the
wp_initialize_site
hook. }
Returns
int|WP_Error The new site's ID on success, or error object on failure.
Source
File name: wordpress/wp-includes/ms-site.php
Lines:
1 to 100 of 107
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_initialize_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',