A WordPress-centric search engine for devs and theme authors



wp_insert_site ›

Since5.0.0
Deprecatedn/a
wp_insert_site ( $data )
Parameters:
  • (array) $data { Data for the new site that should be inserted.
    Required: Yes
Returns:
  • (int|WP_Error) The new site's ID on success, or error object on failure.
Defined at:
Codex:

Inserts a new site into the database.



Source

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,
	);

	// 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'] );
	}

	$data = wp_prepare_site_data( $data, $defaults );
	if ( is_wp_error( $data ) ) {
		return $data;
	}

	if ( false === $wpdb->insert( $wpdb->blogs, $data ) ) {
		return new WP_Error( 'db_insert_error', __( 'Could not insert site into the database.' ), $wpdb->last_error );
	}

	$new_site = get_site( $wpdb->insert_id );

	clean_blog_cache( $new_site );

	/**
	 * Fires once a site has been inserted into the database.
	 *
	 * @since 5.0.0
	 *
	 * @param WP_Site $new_site New site object.
	 */
	do_action( 'wp_insert_site', $new_site );

	/**
	 * Fires when a site's initialization routine should be executed.
	 *
	 * @since 5.0.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();

		/**
		 * Fires immediately after a new site is created.
		 *
		 * @since MU (3.0.0)
		 * @deprecated 5.0.0 Use wp_insert_site
		 *
		 * @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.0.0', 'wp_insert_site' );
	}

	return (int) $new_site->id;
}