# wp_install()

URL: https://chugunov.pro/api-wordpress/functions/wp_install/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.1.0.

## Сигнатура

```php
wp_install( string $blog_title, string $user_name, string $user_email, bool $is_public, string $deprecated = '', string $user_password = '', string $language = '' ): array
```

## Описание

Запускает необходимые функции для настройки и наполнения базы данных, включая создание главного пользователя-администратора и начальных опций.

## Параметры

- `$blog_title` `string` — обязательный. Заголовок сайта.
- `$user_name` `string` — обязательный. Имя пользователя.
- `$user_email` `string` — обязательный. Электронная почта пользователя.
- `$is_public` `bool` — обязательный. Является ли сайт публичным.
- `$deprecated` `string` — необязательный, по умолчанию `''`. Не используется.
- `$user_password` `string` — необязательный, по умолчанию `''`. Выбранный пользователем пароль. Значение по умолчанию — пустая строка (случайный пароль).
- `$language` `string` — необязательный, по умолчанию `''`. Выбранный язык.

## Возвращаемое значение

`array` — url stringURL сайта. user_id intID владельца сайта. password stringПароль владельца сайта, если его учётная запись ещё не существовала. password_message stringПоясняющее сообщение относительно пароля.

## Исходный код

Файл: `wp-admin/includes/upgrade.php:47`

```php
function wp_install(
	$blog_title,
	$user_name,
	$user_email,
	$is_public,
	$deprecated = '',
	#[\SensitiveParameter]
	$user_password = '',
	$language = ''
) {
	if ( ! empty( $deprecated ) ) {
		_deprecated_argument( __FUNCTION__, '2.6.0' );
	}

	wp_check_mysql_version();
	wp_cache_flush();
	make_db_current_silent();

	/*
	 * Ensure update checks are delayed after installation.
	 *
	 * This prevents users being presented with a maintenance mode screen
	 * immediately after installation.
	 */
	wp_unschedule_hook( 'wp_version_check' );
	wp_unschedule_hook( 'wp_update_plugins' );
	wp_unschedule_hook( 'wp_update_themes' );

	wp_schedule_event( time() + HOUR_IN_SECONDS, 'twicedaily', 'wp_version_check' );
	wp_schedule_event( time() + ( 1.5 * HOUR_IN_SECONDS ), 'twicedaily', 'wp_update_plugins' );
	wp_schedule_event( time() + ( 2 * HOUR_IN_SECONDS ), 'twicedaily', 'wp_update_themes' );

	populate_options();
	populate_roles();

	update_option( 'blogname', $blog_title );
	update_option( 'admin_email', $user_email );
	update_option( 'blog_public', $is_public );

	// Freshness of site - in the future, this could get more specific about actions taken, perhaps.
	update_option( 'fresh_site', 1, false );

	if ( $language ) {
		update_option( 'WPLANG', $language );
	}

	$guessurl = wp_guess_url();

	update_option( 'siteurl', $guessurl );

	// If not a public site, don't ping.
	if ( ! $is_public ) {
		update_option( 'default_pingback_flag', 0 );
	}

	/*
	 * Create default user. If the user already exists, the user tables are
	 * being shared among sites. Just set the role in that case.
	 */
	$user_id        = username_exists( $user_name );
	$user_password  = trim( $user_password );
	$email_password = false;
	$user_created   = false;

	if ( ! $user_id && empty( $user_password ) ) {
		$user_password = wp_generate_password( 12, false );
		$message       = __( '<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you.' );
		$user_id       = wp_create_user( $user_name, $user_password, $user_email );
		update_user_meta( $user_id, 'default_password_nag', true );
		$email_password = true;
		$user_created   = true;
	} elseif ( ! $user_id ) {
		// Password has been provided.
		$message      = '<em>' . __( 'Your chosen password.' ) . '</em>';
		$user_id      = wp_create_user( $user_name, $user_password, $user_email );
		$user_created = true;
	} else {
		$message = __( 'User already exists. Password inherited.' );
	}

	$user = new WP_User( $user_id );
	$user->set_role( 'administrator' );

	if ( $user_created ) {
		$user->user_url = $guessurl;
		wp_update_user( $user );
	}

	wp_install_defaults( $user_id );

	wp_install_maybe_enable_pretty_permalinks();

	flush_rewrite_rules();

	wp_new_blog_notification( $blog_title, $guessurl, $user_id, ( $email_password ? $user_password : __( 'The password you chose during installation.' ) ) );

	wp_cache_flush();

	/**
	 * Fires after a site is fully installed.
	 *
	 * @since 3.9.0
	 *
	 * @param WP_User $user The site owner.
	 */
	do_action( 'wp_install', $user );

	return array(
		'url'              => $guessurl,
		'user_id'          => $user_id,
		'password'         => $user_password,
		'password_message' => $message,
	);
}
```

## История изменений

- 2.1.0 — Introduced.

## Связанные

Использует: [`wp_unschedule_hook`](https://chugunov.pro/api-wordpress/functions/wp_unschedule_hook/), [`wp_install_maybe_enable_pretty_permalinks`](https://chugunov.pro/api-wordpress/functions/wp_install_maybe_enable_pretty_permalinks/), [`populate_roles`](https://chugunov.pro/api-wordpress/functions/populate_roles/), [`populate_options`](https://chugunov.pro/api-wordpress/functions/populate_options/), [`wp_check_mysql_version`](https://chugunov.pro/api-wordpress/functions/wp_check_mysql_version/), [`make_db_current_silent`](https://chugunov.pro/api-wordpress/functions/make_db_current_silent/), [`wp_install_defaults`](https://chugunov.pro/api-wordpress/functions/wp_install_defaults/), [`wp_new_blog_notification`](https://chugunov.pro/api-wordpress/functions/wp_new_blog_notification/), `WP_User::__construct`, [`wp_schedule_event`](https://chugunov.pro/api-wordpress/functions/wp_schedule_event/), [`wp_cache_flush`](https://chugunov.pro/api-wordpress/functions/wp_cache_flush/), [`wp_generate_password`](https://chugunov.pro/api-wordpress/functions/wp_generate_password/), [`wp_guess_url`](https://chugunov.pro/api-wordpress/functions/wp_guess_url/), [`wp_create_user`](https://chugunov.pro/api-wordpress/functions/wp_create_user/), [`wp_update_user`](https://chugunov.pro/api-wordpress/functions/wp_update_user/), [`username_exists`](https://chugunov.pro/api-wordpress/functions/username_exists/), [`update_user_meta`](https://chugunov.pro/api-wordpress/functions/update_user_meta/), [`flush_rewrite_rules`](https://chugunov.pro/api-wordpress/functions/flush_rewrite_rules/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`_deprecated_argument`](https://chugunov.pro/api-wordpress/functions/_deprecated_argument/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), [`update_option`](https://chugunov.pro/api-wordpress/functions/update_option/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_install/
