# update_object_term_cache()

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

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

## Сигнатура

```php
update_object_term_cache( string|int[] $object_ids, string|string[] $object_type ): void|false
```

## Описание

Примечание: из соображений производительности следует с большой осторожностью обновлять кеши терминов только при необходимости. Время обработки может расти экспоненциально в зависимости как от числа переданных ID терминов, так и от числа таксономий, которым эти термины принадлежат.
Кеши будут обновлены только для терминов, ещё не находящихся в кеше.

## Параметры

- `$object_ids` `string|int[]` — обязательный. Список ID объектов терминов через запятую или массив таких ID.
- `$object_type` `string|string[]` — обязательный. Тип объекта таксономии или массив таких типов.

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

`void|false` — $object_ids $object_ids

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

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

```php
function update_object_term_cache( $object_ids, $object_type ) {
	if ( empty( $object_ids ) ) {
		return;
	}

	if ( ! is_array( $object_ids ) ) {
		$object_ids = explode( ',', $object_ids );
	}

	$object_ids     = array_map( 'intval', $object_ids );
	$non_cached_ids = array();

	$taxonomies = get_object_taxonomies( $object_type );

	foreach ( $taxonomies as $taxonomy ) {
		$cache_values = wp_cache_get_multiple( (array) $object_ids, "{$taxonomy}_relationships" );

		foreach ( $cache_values as $id => $value ) {
			if ( false === $value ) {
				$non_cached_ids[] = $id;
			}
		}
	}

	if ( empty( $non_cached_ids ) ) {
		return false;
	}

	$non_cached_ids = array_unique( $non_cached_ids );

	$terms = wp_get_object_terms(
		$non_cached_ids,
		$taxonomies,
		array(
			'fields'                 => 'all_with_object_id',
			'orderby'                => 'name',
			'update_term_meta_cache' => false,
		)
	);

	$object_terms = array();
	foreach ( (array) $terms as $term ) {
		$object_terms[ $term->object_id ][ $term->taxonomy ][] = $term->term_id;
	}

	foreach ( $non_cached_ids as $id ) {
		foreach ( $taxonomies as $taxonomy ) {
			if ( ! isset( $object_terms[ $id ][ $taxonomy ] ) ) {
				if ( ! isset( $object_terms[ $id ] ) ) {
					$object_terms[ $id ] = array();
				}
				$object_terms[ $id ][ $taxonomy ] = array();
			}
		}
	}

	$cache_values = array();
	foreach ( $object_terms as $id => $value ) {
		foreach ( $value as $taxonomy => $terms ) {
			$cache_values[ $taxonomy ][ $id ] = $terms;
		}
	}
	foreach ( $cache_values as $taxonomy => $data ) {
		wp_cache_add_multiple( $data, "{$taxonomy}_relationships" );
	}
}
```

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

- 2.3.0 — Introduced.

## Связанные

Использует: [`wp_cache_add_multiple`](https://chugunov.pro/api-wordpress/functions/wp_cache_add_multiple/), [`wp_cache_get_multiple`](https://chugunov.pro/api-wordpress/functions/wp_cache_get_multiple/), [`wp_get_object_terms`](https://chugunov.pro/api-wordpress/functions/wp_get_object_terms/), [`get_object_taxonomies`](https://chugunov.pro/api-wordpress/functions/get_object_taxonomies/).
Используется в: [`update_post_caches`](https://chugunov.pro/api-wordpress/functions/update_post_caches/), [`_prime_post_caches`](https://chugunov.pro/api-wordpress/functions/_prime_post_caches/).

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