# delete_expired_transients()

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

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

## Сигнатура

```php
delete_expired_transients( bool $force_db = false )
```

## Описание

Обратите внимание, что при использовании внешнего объектного кэша функция ничего не делает.
Синтаксис удаления из нескольких таблиц используется, чтобы удалить запись транзиента из таблицы a и соответствующую запись transient_timeout из таблицы b.

## Параметры

- `$force_db` `bool` — необязательный, по умолчанию `false`. Принудительно выполнять очистку в базе данных, даже если используется внешний объектный кэш.

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

Файл: `wp-includes/option.php:1636`

```php
function delete_expired_transients( $force_db = false ) {
	global $wpdb;

	if ( ! $force_db && wp_using_ext_object_cache() ) {
		return;
	}

	$wpdb->query(
		$wpdb->prepare(
			"DELETE a, b FROM {$wpdb->options} a, {$wpdb->options} b
			WHERE a.option_name LIKE %s
			AND a.option_name NOT LIKE %s
			AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) )
			AND b.option_value < %d",
			$wpdb->esc_like( '_transient_' ) . '%',
			$wpdb->esc_like( '_transient_timeout_' ) . '%',
			time()
		)
	);

	if ( ! is_multisite() ) {
		// Single site stores site transients in the options table.
		$wpdb->query(
			$wpdb->prepare(
				"DELETE a, b FROM {$wpdb->options} a, {$wpdb->options} b
				WHERE a.option_name LIKE %s
				AND a.option_name NOT LIKE %s
				AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) )
				AND b.option_value < %d",
				$wpdb->esc_like( '_site_transient_' ) . '%',
				$wpdb->esc_like( '_site_transient_timeout_' ) . '%',
				time()
			)
		);
	} elseif ( is_main_site() && is_main_network() ) {
		// Multisite stores site transients in the sitemeta table.
		$wpdb->query(
			$wpdb->prepare(
				"DELETE a, b FROM {$wpdb->sitemeta} a, {$wpdb->sitemeta} b
				WHERE a.meta_key LIKE %s
				AND a.meta_key NOT LIKE %s
				AND b.meta_key = CONCAT( '_site_transient_timeout_', SUBSTRING( a.meta_key, 17 ) )
				AND b.meta_value < %d",
				$wpdb->esc_like( '_site_transient_' ) . '%',
				$wpdb->esc_like( '_site_transient_timeout_' ) . '%',
				time()
			)
		);
	}
}
```

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

- 4.9.0 — Introduced.

## Связанные

Использует: `wpdb::esc_like`, [`wp_using_ext_object_cache`](https://chugunov.pro/api-wordpress/functions/wp_using_ext_object_cache/), [`is_main_site`](https://chugunov.pro/api-wordpress/functions/is_main_site/), [`is_main_network`](https://chugunov.pro/api-wordpress/functions/is_main_network/), `wpdb::query`, [`is_multisite`](https://chugunov.pro/api-wordpress/functions/is_multisite/), `wpdb::prepare`.
Используется в: [`populate_options`](https://chugunov.pro/api-wordpress/functions/populate_options/), [`upgrade_network`](https://chugunov.pro/api-wordpress/functions/upgrade_network/).

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