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.
Как работает функция
Функция последовательно выполняет следующие шаги:
- Преобразует $object_id в целое число.
- Проверяет, существует ли указанная $taxonomy. Если нет, то возвращает ошибку.
- Приводит $terms к массиву, если это не массив.
- Находит идентификаторы терминов и добавляет их в массив $tt_ids.
- Удаляет связи между объектом и терминами из таблицы
term_relationships. - Вызывает действия, которые могут быть использованы другими частями WordPress для выполнения дополнительных задач при удалении.
После выполнения всех этих шагов функция обновляет кэш терминов и возвращает результат операции.
Заключение
Функция wp_remove_object_terms() полезна для управления метками и категориями постов в WordPress. Она позволяет легко удалять ненужные термины и поддерживать ваш контент в актуальном состоянии.