Функция wp_set_post_tags()
используется для установки меток (tags) для поста в WordPress. Она позволяет как заменять существующие метки, так и дополнять их новыми. Если указанная метка не существует, WordPress создаст её автоматически.
wp_set_post_tags( int $post_id, string|array $tags = '', bool $append = false ): array|false|WP_Error
Аргументы
$post_id
(int, обязательный): ID поста, для которого назначаются метки. Не использует глобальный пост по умолчанию, ID должен быть указан явно.$tags
(string|array, опциональный): Массив меток или строка с метками через запятую, которые нужно назначить посту. Если метки указаны как строка, WordPress создаст новые метки, если они не существуют.$append
(bool, опциональный): Логический флаг, который определяет, нужно ли добавить новые метки к существующим или заменить их. Еслиtrue
, новые метки добавятся к текущим. Еслиfalse
— старые метки заменяются новыми.
Возвращаемое значение
Функция возвращает:
- Массив — ID таксономий для назначенных меток.
false
— в случае ошибки, если$post_id
не является числом или равен 0.WP_Error
— если произошла ошибка в процессе назначения меток.
Примечания
- Если в массиве
$tags
указаны существующие ID меток, WordPress использует эти метки. - Если переданы текстовые значения, то WordPress создаст метки, если они не существуют.
- В массиве можно смешивать текстовые значения и ID, в таком случае текстовые значения создадут новые метки, а ID будут привязаны к существующим.
1. Назначение меток посту
В этом примере мы создаем три метки и присваиваем их посту с ID 100. Если метки уже существуют, они заменят существующие метки поста.
$post_id = 100; // ID поста
$tags = array('Mango', 'Apple', 'Banana'); // Массив меток
wp_set_post_tags( $post_id, $tags ); // Назначаем метки посту
2. Добавление меток к существующим
Здесь мы добавляем метки «meaning» и «life» к посту с ID 123, при этом сохраняем текущие метки поста.
wp_set_post_tags( 123, 'meaning,life', true );
3. Использование кириллических меток
Если указать метки на кириллице, функция создаст метки с теми же названиями. Слаг для этих меток будет создан автоматически.
$post_id = 123;
$tags = 'футбол, теннис';
wp_set_post_tags( $post_id, $tags );
В этом примере метки «футбол» и «теннис» будут добавлены к посту с ID 123. Если они не существуют, WordPress создаст их.
Заключение
Функция wp_set_post_tags()
— это удобный способ управлять метками постов в WordPress. Она позволяет как создавать новые метки, так и работать с уже существующими, что делает ее полезной для автоматизации контент-менеджмента и управления таксономией постов.