# wp_delete_site()

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

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

## Сигнатура

```php
wp_delete_site( int $site_id ): WP_Site|WP_Error
```

## Описание

Удаляет сайт из базы данных.

## Параметры

- `$site_id` `int` — обязательный. ID сайта, который нужно удалить.

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

`WP_Site|WP_Error`

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

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

```php
function wp_delete_site( $site_id ) {
	global $wpdb;

	if ( empty( $site_id ) ) {
		return new WP_Error( 'site_empty_id', __( 'Site ID must not be empty.' ) );
	}

	$old_site = get_site( $site_id );
	if ( ! $old_site ) {
		return new WP_Error( 'site_not_exist', __( 'Site does not exist.' ) );
	}

	$errors = new WP_Error();

	/**
	 * Fires before a site should be deleted from the database.
	 *
	 * Plugins should amend the `$errors` object via its `WP_Error::add()` method. If any errors
	 * are present, the site will not be deleted.
	 *
	 * @since 5.1.0
	 *
	 * @param WP_Error $errors   Error object to add validation errors to.
	 * @param WP_Site  $old_site The site object to be deleted.
	 */
	do_action( 'wp_validate_site_deletion', $errors, $old_site );

	if ( ! empty( $errors->errors ) ) {
		return $errors;
	}

	/**
	 * Fires before a site is deleted.
	 *
	 * @since MU (3.0.0)
	 * @deprecated 5.1.0
	 *
	 * @param int  $site_id The site ID.
	 * @param bool $drop    True if site's table should be dropped. Default false.
	 */
	do_action_deprecated( 'delete_blog', array( $old_site->id, true ), '5.1.0' );

	/**
	 * Fires when a site's uninitialization routine should be executed.
	 *
	 * @since 5.1.0
	 *
	 * @param WP_Site $old_site Deleted site object.
	 */
	do_action( 'wp_uninitialize_site', $old_site );

	if ( is_site_meta_supported() ) {
		$blog_meta_ids = $wpdb->get_col( $wpdb->prepare( "SELECT meta_id FROM $wpdb->blogmeta WHERE blog_id = %d ", $old_site->id ) );
		foreach ( $blog_meta_ids as $mid ) {
			delete_metadata_by_mid( 'blog', $mid );
		}
	}

	if ( false === $wpdb->delete( $wpdb->blogs, array( 'blog_id' => $old_site->id ) ) ) {
		return new WP_Error( 'db_delete_error', __( 'Could not delete site from the database.' ), $wpdb->last_error );
	}

	clean_blog_cache( $old_site );

	/**
	 * Fires once a site has been deleted from the database.
	 *
	 * @since 5.1.0
	 *
	 * @param WP_Site $old_site Deleted site object.
	 */
	do_action( 'wp_delete_site', $old_site );

	/**
	 * Fires after the site is deleted from the network.
	 *
	 * @since 4.8.0
	 * @deprecated 5.1.0
	 *
	 * @param int  $site_id The site ID.
	 * @param bool $drop    True if site's tables should be dropped. Default false.
	 */
	do_action_deprecated( 'deleted_blog', array( $old_site->id, true ), '5.1.0' );

	return $old_site;
}
```

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

- 5.1.0 — Introduced.

## Связанные

Использует: [`is_site_meta_supported`](https://chugunov.pro/api-wordpress/functions/is_site_meta_supported/), [`get_site`](https://chugunov.pro/api-wordpress/functions/get_site/), [`do_action_deprecated`](https://chugunov.pro/api-wordpress/functions/do_action_deprecated/), [`clean_blog_cache`](https://chugunov.pro/api-wordpress/functions/clean_blog_cache/), `wpdb::get_col`, `wpdb::delete`, [`delete_metadata_by_mid`](https://chugunov.pro/api-wordpress/functions/delete_metadata_by_mid/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), `wpdb::prepare`, `WP_Error::__construct`.
Используется в: [`wpmu_delete_blog`](https://chugunov.pro/api-wordpress/functions/wpmu_delete_blog/).

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