wpmu_create_blog()
Creates a site.
This function runs when a user self-registers a new site as well as when a Super Admin creates a new site. Hook to wpmu_new_blog for events that should affect all new sites.
On subdirectory installations, $domain is the same as the main site's domain, and the path is the subdirectory name (eg 'example.com' and '/blog1/'). On subdomain installations, $domain is the new subdomain + root domain (eg 'blog1.example.com'), and $path is '/'.
No Hooks.
Return
Int|WP_Error
. Returns WP_Error object on failure, the new site ID on success.
Usage
wpmu_create_blog( $domain, $path, $title, $user_id, $options, $network_id );
- $domain(string) (required)
- The new site's domain.
- $path(string) (required)
- The new site's path.
- $title(string) (required)
- The new site's title.
- $user_id(int) (required)
- The user ID of the new site's admin.
- $options(array)
- Array of key=>value pairs used to set initial site options. If valid status keys are included ('public', 'archived', 'mature', 'spam', 'deleted', or 'lang_id') the given site status(es) will be updated. Otherwise, keys and values will be used to set options for the new site.
Default: empty array - $network_id(int)
- Network ID. Only relevant on multi-network installations.
Default: 1
Changelog
Since 3.0.0 | Introduced. |
wpmu_create_blog() wpmu create blog code WP 6.6.1
function wpmu_create_blog( $domain, $path, $title, $user_id, $options = array(), $network_id = 1 ) { $defaults = array( 'public' => 0, ); $options = wp_parse_args( $options, $defaults ); $title = strip_tags( $title ); $user_id = (int) $user_id; // Check if the domain has been used already. We should return an error message. if ( domain_exists( $domain, $path, $network_id ) ) { return new WP_Error( 'blog_taken', __( 'Sorry, that site already exists!' ) ); } if ( ! wp_installing() ) { wp_installing( true ); } $allowed_data_fields = array( 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id' ); $site_data = array_merge( array( 'domain' => $domain, 'path' => $path, 'network_id' => $network_id, ), array_intersect_key( $options, array_flip( $allowed_data_fields ) ) ); // Data to pass to wp_initialize_site(). $site_initialization_data = array( 'title' => $title, 'user_id' => $user_id, 'options' => array_diff_key( $options, array_flip( $allowed_data_fields ) ), ); $blog_id = wp_insert_site( array_merge( $site_data, $site_initialization_data ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } wp_cache_set_sites_last_changed(); return $blog_id; }