Описание функции wp_set_object_terms()
Функция wp_set_object_terms() позволяет установить термины (категории, метки и т.д.) для заданного объекта (поста, страницы, пользовательского типа записи). Функция может использоваться для создания и обновления связей между объектами и терминами таксономии.
Функция также поддерживает множественные термины и может удалять существующие термины, если это необходимо
Параметры
$object_id
Тип: int
Обязательный: Да
Описание: ID объекта, которому устанавливаются термины
Возможные значения:
$terms
Тип: mixed
Обязательный: Да
Описание: Массив или строка терминов, которые необходимо установить
Возможные значения:
$taxonomy
Тип: string
Обязательный: Да
Описание: Имя таксономии, к которой относятся термины
Возможные значения:
0: category
1: post_tag
2: custom_taxonomy
$append
Тип: bool
Обязательный: Нет
Описание: Добавить термины к существующим (true) или заменить их (false)
Возможные значения:
0: 1
1:
Возвращаемое значение
Тип: mixed
Описание: Возвращает массив установленных терминов или WP_Error в случае ошибки
Возможные значения:
• Массив установленных терминов при успешном выполнении
• WP_Error в случае ошибки
Примеры использования
Базовый пример установки терминов для поста с ID 42
$result = wp_set_object_terms(42, ['term1', 'term2'], 'category');
// Проверка результата
if (!is_wp_error($result)) {
echo 'Термины успешно установлены';
} else {
echo 'Ошибка: ' . $result->get_error_message();
}
Термины терминов ‘term1’ и ‘term2’ будут установлены для категории
Добавление нового термина ‘term3’ к существующим терминам поста
$result = wp_set_object_terms(42, 'term3', 'category', true);
// Проверка результата
if (!is_wp_error($result)) {
echo 'Термин добавлен';
}
append=true позволяет сохранить существующие термины
Безопасность
Валидация входных данных: Функция проверяет корректность ID объекта и существование таксономии
Санитизация: Термины автоматически очищаются через sanitize_term()
Рекомендации: При выводе данных используйте esc_html() для названий терминов
— Связанные функции
Получает термины, привязанные к объекту
Удаляет термины из объекта
— Хуки
Фильтрует термины перед их установкой
— Примечания
– Ограничения
Не работает для объектов, у которых нет возможности привязки к терминам
– Частые проблемы
- Ошибка при неверном ID объекта
- Ошибка при неверной таксономии