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.");
}