Описание функции wp_set_post_categories()
Функция wp_set_post_categories() назначает категории посту, обновляя его метаданные в базе данных. Она позволяет установить несколько категорий одновременно, используя массив идентификаторов категорий. Эта функция полезна для автоматизации процесса назначения категорий при создании или обновлении постов.
Функция также вызывает необходимые хуки для обновления кэша и других связанных данных
Параметры
$post_id
Тип: int
Обязательный: Да
Описание: ID поста, для которого назначаются категории
Возможные значения:
$term_ids
Тип: array
Обязательный: Да
По умолчанию: array()
Описание: Массив идентификаторов категорий, которые будут назначены посту
Возможные значения:
Возвращаемое значение
Тип: bool
Описание: Возвращает true при успешном выполнении, иначе false
Возможные значения:
• true — если категории успешно назначены
• false — если произошла ошибка при назначении категорий
Примеры использования
Базовый пример назначения категорий посту
$post_id = 1;
$categories = array(2, 3);
$result = wp_set_post_categories($post_id, $categories);
// Проверка результата
if ($result) {
echo 'Категории успешно назначены';
} else {
echo 'Ошибка при назначении категорий';
}
Пост с ID 1 получит категории с ID 2 и 3
Проверка существования поста перед установкой категорий
$post_id = 42;
if (get_post($post_id)) {
wp_set_post_categories($post_id, array(1, 4));
} else {
echo 'Пост не найден';
}
Обрабатывает случай, когда пост с данным ID отсутствует
Безопасность
Валидация входных данных: ID поста и категории проходят валидацию внутри функции
Санитизация: Параметры автоматически очищаются WordPress
Рекомендации: Перед передачей данных в функцию проверьте, что они являются целыми числами
— Связанные функции
Получает категории конкретного поста
Удаляет категории из поста
— Хуки
Фильтрует массив категорий перед их назначением
— Примечания
– Ограничения
Не устанавливает категории, которые не существуют
– Частые проблемы
- Возвращает false при неверном ID поста
- Проблемы, если переданы категории, не относящиеся к типу ‘category’