Intereting Posts
Программно заданный шаблон страницы на основе идентификатора страницы Переадресовать цикл в / wp-admin / Поиск файла wordpress в редакторе темы с использованием имени темы Как получить путь к текущей теме? Загрузка и отображение значка сайта в теме get_the_post_thumbnail () не принимает атрибут стиля связать переменную с пользователем wp_nav_walker, который взаимодействует с виджетами для настройки мега-меню экземпляр пуст в функции widget () Сделать изображения отображаются в том же порядке, что и в медиа-браузере, используя «получить детей»? Пользовательский тип сообщения (CPT), не выполняющий пользовательскую структуру постоянной ссылки Как вставить fancybox в несколько отдельных галерей в сообщение? изменить изображения the_content для разных размеров (рабочий стол, планшет, мобильный)? Связать избранные с учетной записью пользователя (участника) В чем разница между current_page_parent и current_page_ancestor?

как программно менять теги сообщений

Есть ли функция php, которая может добавлять / удалять теги сообщений? Если не так, как бы я это сделал?

Я ищу что-то вроде этого:

add_tag($post_id, 'tag-name'); remove_tag($post_id, 'tag-name'); 

Solutions Collecting From Web of "как программно менять теги сообщений"

Ключевая функция, которую вы ищете, – wp_set_post_tags() .

Чтобы добавить тег 'awesome' для сообщения 98,

 wp_set_post_tags( 98, array( 'awesome' ), true ); 

Обратите внимание, что true параметр означает, что этот тег будет добавлен к существующим тегам. Если вы опустите это значение, по умолчанию оно будет false , а существующие теги post будут перезаписаны передаваемыми новыми.

Чтобы удалить тег, сначала вытащите список существующих тегов сообщений, используя https://codex.wordpress.org/Function_Reference/wp_get_post_tags :

 $tags = wp_get_post_tags( 98 ); 

Затем соберите список тегов, которые вы хотите сохранить (что исключает ту, которую вы удаляете), и замените существующие теги для публикации новым списком:

 $tags_to_delete = array( 'radical', 'bodacious' ); $tags_to_keep = array(); foreach ( $tags as $t ) { if ( !in_array( $t->name, $tags_to_delete ) ) { $tags_to_keep[] = $t->name; } } wp_set_post_tags( 98, $tags_to_keep, false );