# wp_insert_site()

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

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

## Сигнатура

```php
wp_insert_site( array $data ): int|WP_Error
```

## Описание

Вставляет новый сайт в базу данных.

## Параметры

- `$data` `array` — обязательный. Данные для нового сайта, который нужно вставить.
  
  domain stringДомен сайта. По умолчанию пустая строка.
  
  path stringПуть сайта. По умолчанию '/'.
  
  network_id intID сети сайта. По умолчанию — ID текущей сети.
  
  registered stringВремя регистрации сайта в формате даты-времени SQL. По умолчанию — текущее время.
  
  last_updated stringВремя последнего обновления сайта в формате даты-времени SQL. По умолчанию — значение $registered.
  
  public intЯвляется ли сайт публичным. По умолчанию 1.
  
  archived intНаходится ли сайт в архиве. По умолчанию 0.
  
  mature intПомечен ли сайт как «для взрослых». По умолчанию 0.
  
  spam intЯвляется ли сайт спамом. По умолчанию 0.
  
  deleted intУдалён ли сайт. По умолчанию 0.
  
  lang_id intID языка сайта. В настоящее время не используется. По умолчанию 0.
  
  user_id intID пользователя-администратора сайта. Передаётся в хук wp_initialize_site.
  
  title stringНазвание сайта. По умолчанию 'Site %d', где %d — ID сайта. Передаётся в хук wp_initialize_site.
  
  options arrayПользовательские пары опций $key => $value. По умолчанию пустой массив. Передаётся в хук wp_initialize_site.
  
  meta arrayПользовательские пары метаданных сайта $key => $value. По умолчанию пустой массив.
  
  Передаётся в хук wp_initialize_site.

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

`int|WP_Error`

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

Файл: `wp-includes/ms-site.php:44`

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

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

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

	$site_id = (int) $wpdb->insert_id;

	clean_blog_cache( $site_id );

	$new_site = get_site( $site_id );

	if ( ! $new_site ) {
		return new WP_Error( 'get_site_error', __( 'Could not retrieve site data.' ) );
	}

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

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

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

		// WPLANG was passed with `$meta` to the `wpmu_new_blog` hook prior to 5.1.0.
		if ( ! array_key_exists( 'WPLANG', $meta ) ) {
			$meta['WPLANG'] = get_network_option( $new_site->network_id, 'WPLANG' );
		}

		/*
		 * Rebuild the data expected by the `wpmu_new_blog` hook prior to 5.1.0 using allowed keys.
		 * The `$allowed_data_fields` matches the one used in `wpmu_create_blog()`.
		 */
		$allowed_data_fields = array( 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id' );
		$meta                = array_merge( array_intersect_key( $data, array_flip( $allowed_data_fields ) ), $meta );

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

	return (int) $new_site->id;
}
```

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

- 5.1.0 — Introduced.

## Связанные

Использует: [`wp_prepare_site_data`](https://chugunov.pro/api-wordpress/functions/wp_prepare_site_data/), [`get_current_network_id`](https://chugunov.pro/api-wordpress/functions/get_current_network_id/), [`get_site`](https://chugunov.pro/api-wordpress/functions/get_site/), [`do_action_deprecated`](https://chugunov.pro/api-wordpress/functions/do_action_deprecated/), [`get_network_option`](https://chugunov.pro/api-wordpress/functions/get_network_option/), [`current_time`](https://chugunov.pro/api-wordpress/functions/current_time/), [`has_action`](https://chugunov.pro/api-wordpress/functions/has_action/), [`clean_blog_cache`](https://chugunov.pro/api-wordpress/functions/clean_blog_cache/), `wpdb::insert`, [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/), `WP_Error::__construct`.
Используется в: [`insert_blog`](https://chugunov.pro/api-wordpress/functions/insert_blog/), [`wpmu_create_blog`](https://chugunov.pro/api-wordpress/functions/wpmu_create_blog/).

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