Удаление терминов объекта в WordPress с помощью WP_REMOVE_OBJECT_TERMS()

WP_REMOVE_OBJECT_TERMS() │ WP 3.6.0

Функция WP_REMOVE_OBJECT_TERMS() предназначена для удаления терминов, связанных с определенным объектом, например, постом или страницей. Это позволяет управлять категориями и метками (тегами) в WordPress.

Использование функции

Функция вызывается следующим образом:

wp_remove_object_terms( $object_id, $terms, $taxonomy );

Параметры

  • $object_id (int, обязательный): ID объекта (например, поста или страницы), из которого нужно удалить термины.
  • $terms (string|int|array, обязательный): Название (slug) или ID термина (категории, метки), который необходимо удалить. Можно указывать несколько терминов, передавая их в виде массива.
  • $taxonomy (string, обязательный): Название таксономии (например, 'post_tag' для меток или 'category' для категорий).

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

Функция возвращает:

  • true: если операция прошла успешно.
  • false или WP_Error: если произошла ошибка.

Примеры использования

Удаление тегов из поста

Вот пример, который показывает, как удалить тег из поста:

$post_id  = 5; // ID поста
$terms    = 'sweet'; // Тег, который нужно удалить
$taxonomy = 'post_tag'; // Тип таксономии

$done = wp_remove_object_terms( $post_id, $terms, $taxonomy );

if( $done ){
    echo "Тег успешно удален из поста.";
}
else {
    echo "Не удалось удалить тег.";
}

Пояснения к коду

  • $post_id: идентификатор поста, из которого вы хотите удалить тег.
  • $terms: название тега, который следует удалить.
  • $taxonomy: тип таксономии, в данном случае это 'post_tag' (метка поста).

Важные моменты

  • Глобальные переменные: Функция использует глобальный объект базы данных WordPress $wpdb для выполнения операций с базой данных.
  • Проверка существования таксономии: Перед удалением терминов функция проверяет, существует ли указанная таксономия.
  • Обработка ошибок: Если передан несуществующий термин, функция пропускает его. В случае других ошибок возвращает объект WP_Error.

Как работает функция

Функция последовательно выполняет следующие шаги:

  1. Преобразует $object_id в целое число.
  2. Проверяет, существует ли указанная $taxonomy. Если нет, то возвращает ошибку.
  3. Приводит $terms к массиву, если это не массив.
  4. Находит идентификаторы терминов и добавляет их в массив $tt_ids.
  5. Удаляет связи между объектом и терминами из таблицы term_relationships.
  6. Вызывает действия, которые могут быть использованы другими частями WordPress для выполнения дополнительных задач при удалении.

После выполнения всех этих шагов функция обновляет кэш терминов и возвращает результат операции.

Заключение

Функция wp_remove_object_terms() полезна для управления метками и категориями постов в WordPress. Она позволяет легко удалять ненужные термины и поддерживать ваш контент в актуальном состоянии.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *