# wp_remove_object_terms()

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

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

## Сигнатура

```php
wp_remove_object_terms( int $object_id, string|int|array $terms, string $taxonomy ): bool|WP_Error
```

## Описание

Удаляет термин(ы), связанные с указанным объектом.

## Параметры

- `$object_id` `int` — обязательный. ID объекта, из которого будут удалены термины.
- `$terms` `string|int|array` — обязательный. Слаг(и) или ID термина(ов), которые нужно удалить.
- `$taxonomy` `string` — обязательный. Имя таксономии.

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

`bool|WP_Error` — WP_Error

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

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

```php
function wp_remove_object_terms( $object_id, $terms, $taxonomy ) {
	global $wpdb;

	$object_id = (int) $object_id;

	if ( ! taxonomy_exists( $taxonomy ) ) {
		return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy.' ) );
	}

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

	$tt_ids = array();

	foreach ( (array) $terms as $term ) {
		if ( '' === trim( $term ) ) {
			continue;
		}

		$term_info = term_exists( $term, $taxonomy );
		if ( ! $term_info ) {
			// Skip if a non-existent term ID is passed.
			if ( is_int( $term ) ) {
				continue;
			}
		}

		if ( is_wp_error( $term_info ) ) {
			return $term_info;
		}

		$tt_ids[] = $term_info['term_taxonomy_id'];
	}

	if ( $tt_ids ) {
		$in_tt_ids = "'" . implode( "', '", $tt_ids ) . "'";

		/**
		 * Fires immediately before an object-term relationship is deleted.
		 *
		 * @since 2.9.0
		 * @since 4.7.0 Added the `$taxonomy` parameter.
		 *
		 * @param int    $object_id Object ID.
		 * @param array  $tt_ids    An array of term taxonomy IDs.
		 * @param string $taxonomy  Taxonomy slug.
		 */
		do_action( 'delete_term_relationships', $object_id, $tt_ids, $taxonomy );

		$deleted = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->term_relationships WHERE object_id = %d AND term_taxonomy_id IN ($in_tt_ids)", $object_id ) );

		wp_cache_delete( $object_id, $taxonomy . '_relationships' );
		wp_cache_set_terms_last_changed();

		/**
		 * Fires immediately after an object-term relationship is deleted.
		 *
		 * @since 2.9.0
		 * @since 4.7.0 Added the `$taxonomy` parameter.
		 *
		 * @param int    $object_id Object ID.
		 * @param array  $tt_ids    An array of term taxonomy IDs.
		 * @param string $taxonomy  Taxonomy slug.
		 */
		do_action( 'deleted_term_relationships', $object_id, $tt_ids, $taxonomy );

		wp_update_term_count( $tt_ids, $taxonomy );

		return (bool) $deleted;
	}

	return false;
}
```

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

- 3.6.0 — Introduced.

## Связанные

Использует: [`wp_cache_set_terms_last_changed`](https://chugunov.pro/api-wordpress/functions/wp_cache_set_terms_last_changed/), [`wp_cache_delete`](https://chugunov.pro/api-wordpress/functions/wp_cache_delete/), [`wp_update_term_count`](https://chugunov.pro/api-wordpress/functions/wp_update_term_count/), [`term_exists`](https://chugunov.pro/api-wordpress/functions/term_exists/), [`taxonomy_exists`](https://chugunov.pro/api-wordpress/functions/taxonomy_exists/), `wpdb::query`, [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), `wpdb::prepare`, [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/), `WP_Error::__construct`.
Используется в: [`wp_set_object_terms`](https://chugunov.pro/api-wordpress/functions/wp_set_object_terms/), [`wp_delete_object_term_relationships`](https://chugunov.pro/api-wordpress/functions/wp_delete_object_term_relationships/), [`wp_delete_term`](https://chugunov.pro/api-wordpress/functions/wp_delete_term/).

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