# clean_term_cache()

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

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

## Сигнатура

```php
clean_term_cache( int|int[] $ids, string $taxonomy = '', bool $clean_taxonomy = true )
```

## Описание

Удаляет все ID терминов из кеша.

## Параметры

- `$ids` `int|int[]` — обязательный. Один ID термина или массив ID.
- `$taxonomy` `string` — необязательный, по умолчанию `''`. Слаг таксономии. Может быть пустым — в этом случае будут использованы таксономии переданных ID терминов.
- `$clean_taxonomy` `bool` — необязательный, по умолчанию `true`. Очищать ли кеши всей таксономии (true) или только кеши отдельных объектов терминов (false).

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

Файл: `wp-includes/taxonomy.php:3675`

```php
function clean_term_cache( $ids, $taxonomy = '', $clean_taxonomy = true ) {
	global $wpdb, $_wp_suspend_cache_invalidation;

	if ( ! empty( $_wp_suspend_cache_invalidation ) ) {
		return;
	}

	if ( ! is_array( $ids ) ) {
		$ids = array( $ids );
	}

	$taxonomies = array();
	// If no taxonomy, assume tt_ids.
	if ( empty( $taxonomy ) ) {
		$tt_ids = array_map( 'intval', $ids );
		$tt_ids = implode( ', ', $tt_ids );
		$terms  = $wpdb->get_results( "SELECT term_id, taxonomy FROM $wpdb->term_taxonomy WHERE term_taxonomy_id IN ($tt_ids)" );
		$ids    = array();

		foreach ( (array) $terms as $term ) {
			$taxonomies[] = $term->taxonomy;
			$ids[]        = $term->term_id;
		}
		wp_cache_delete_multiple( $ids, 'terms' );
		$taxonomies = array_unique( $taxonomies );
	} else {
		wp_cache_delete_multiple( $ids, 'terms' );
		$taxonomies = array( $taxonomy );
	}

	foreach ( $taxonomies as $taxonomy ) {
		if ( $clean_taxonomy ) {
			clean_taxonomy_cache( $taxonomy );
		}

		/**
		 * Fires once after each taxonomy's term cache has been cleaned.
		 *
		 * @since 2.5.0
		 * @since 4.5.0 Added the `$clean_taxonomy` parameter.
		 *
		 * @param array  $ids            An array of term IDs.
		 * @param string $taxonomy       Taxonomy slug.
		 * @param bool   $clean_taxonomy Whether or not to clean taxonomy-wide caches
		 */
		do_action( 'clean_term_cache', $ids, $taxonomy, $clean_taxonomy );
	}

	wp_cache_set_terms_last_changed();
}
```

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

- 2.3.0 — Introduced.

## Связанные

Использует: [`wp_cache_delete_multiple`](https://chugunov.pro/api-wordpress/functions/wp_cache_delete_multiple/), [`wp_cache_set_terms_last_changed`](https://chugunov.pro/api-wordpress/functions/wp_cache_set_terms_last_changed/), [`clean_taxonomy_cache`](https://chugunov.pro/api-wordpress/functions/clean_taxonomy_cache/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), `wpdb::get_results`.
Используется в: [`clean_category_cache`](https://chugunov.pro/api-wordpress/functions/clean_category_cache/), [`wp_update_term`](https://chugunov.pro/api-wordpress/functions/wp_update_term/), [`wp_update_term_count_now`](https://chugunov.pro/api-wordpress/functions/wp_update_term_count_now/), [`wp_insert_term`](https://chugunov.pro/api-wordpress/functions/wp_insert_term/), [`wp_delete_term`](https://chugunov.pro/api-wordpress/functions/wp_delete_term/).

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