Como remover etiquetas específicas de várias postagens?

Estou tentando encontrar um método para excluir uma determinada tag, que é usada no meu tema para exibir de forma diferente as mensagens “featured” e “dont-miss”, de várias postagens e não consegui encontrar uma solução. Ou a única solução que encontrei é editar rapidamente cada publicação manualmente.

Eu sei que adicionar tags em massa a postagens é suportado diretamente no WordPress, mas também existe a possibilidade de remover a etiqueta de tamanho em massa? Você tem uma alternativa semi-automática?

Solutions Collecting From Web of "Como remover etiquetas específicas de várias postagens?"

Uma vez que nenhuma function direta é para conseguir o necessário, então eu fiz o código.

O código é auto-explicativo e você pode ajustá-lo da maneira que você gosta.

< ?php //Assuming a post ID to reset tags. $postid = 172; //Assuming tag2 is supposed to be removed $remove_tag = 'tag2'; //Collecting all the tags of post $total_tags = get_the_tags($postid); //Recreating an array without the $remove_tag foreach($total_tags as $tag){ if($tag->name != $remove_tag){ $updated_tags[] = $tag->name; } } //Setting tags with $updated_tags array. wp_set_post_terms( $postid, $updated_tags, 'post_tag', false); ?> 

Se você estiver trabalhando em várias postagens, então você pode executar um loop foreach e passando postid em cada loop.

EDITAR Código atualizado para include muitas postagens (identificação da publicação)

 < ?php //Assuming a post ID to reset tags. $posts_to_remove_tag_from = array(172,168); //Assuming tag2 is supposed to be removed $remove_tag = 'tag2'; //Collecting all the tags of post foreach($posts_to_remove_tag_from as $postid){ $total_tags = get_the_tags($postid); //Recreating an array to without the $remove_tag foreach($total_tags as $tag){ if($tag->name != $remove_tag){ $updated_tags[] = $tag->name; } } //Setting tags with $updated_tags array. wp_set_post_terms( $postid, $updated_tags, 'post_tag', false); //flushing $updated_tags array, and make it ready for next post in the loop. $updated_tags = []; } ?>