Core_Command::multisite_install PHP Method

multisite_install() public method

Creates the WordPress tables in the database using the URL, title, and default admin user details provided. Then, creates the multisite tables in the database and adds multisite constants to the wp-config.php. ## OPTIONS [--url=] : The address of the new site. [--base=] : Base path after the domain name that each site url in the network will start with. --- default: / --- [--subdomains] : If passed, the network will use subdomains, instead of subdirectories. Doesn't work with 'localhost'. --title= : The title of the new site. --admin_user= : The name of the admin user. --- default: admin --- [--admin_password=] : The password for the admin user. Defaults to randomly generated string. --admin_email= : The email address for the admin user. [--skip-email] : Don't send an email notification to the new admin user. ## EXAMPLES $ wp core multisite-install --title="Welcome to the WordPress" \ > --admin_user="admin" --admin_password="password" \ > --admin_email="[email protected]" Single site database tables already present. Set up multisite database tables. Added multisite constants to wp-config.php. Success: Network installed. Don't forget to set up rewrite rules.
public multisite_install ( $args, $assoc_args )
    public function multisite_install($args, $assoc_args)
    {
        if ($this->_install($assoc_args)) {
            WP_CLI::log('Created single site database tables.');
        } else {
            WP_CLI::log('Single site database tables already present.');
        }
        $assoc_args = self::_set_multisite_defaults($assoc_args);
        $assoc_args['title'] = sprintf(_x('%s Sites', 'Default network name'), $assoc_args['title']);
        // Overwrite runtime args, to avoid mismatches.
        $consts_to_args = array('SUBDOMAIN_INSTALL' => 'subdomains', 'PATH_CURRENT_SITE' => 'base', 'SITE_ID_CURRENT_SITE' => 'site_id', 'BLOG_ID_CURRENT_SITE' => 'blog_id');
        foreach ($consts_to_args as $const => $arg) {
            if (defined($const)) {
                $assoc_args[$arg] = constant($const);
            }
        }
        if (!$this->_multisite_convert($assoc_args)) {
            return;
        }
        // Do the steps that were skipped by populate_network(),
        // which checks is_multisite().
        if (is_multisite()) {
            $site_user = get_user_by('email', $assoc_args['admin_email']);
            self::add_site_admins($site_user);
            $domain = self::get_clean_basedomain();
            self::create_initial_blog($assoc_args['site_id'], $assoc_args['blog_id'], $domain, $assoc_args['base'], $assoc_args['subdomains'], $site_user);
        }
        WP_CLI::success("Network installed. Don't forget to set up rewrite rules.");
    }