如何从多个帖子中删除特定标签?

时间:2014-02-20 作者:Drake

我试图找到一种方法来删除某个标签,该标签在我的主题中用于显示不同的“特色”和“不要错过”帖子,但我无法找到解决方案。或者,我找到的唯一解决方案是手动快速编辑每篇文章。

我知道Wordpress直接支持向帖子中添加批量标记,但是否也可以批量删除ta标记?你们有半自动的替代品吗?

1 个回复
最合适的回答,由SO网友:Sudeep K Rana 整理而成

由于没有直接的函数可以实现所需的功能,所以我编写了代码。

代码是不言自明的,您可以按自己喜欢的方式对其进行调整。

<?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);
        ?>
如果您正在处理多个帖子,则可以运行foreach 回路和旁路postid 在每个循环中。

EDIT更新代码以包含许多帖子(帖子id)

<?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 = [];
    }
?>

结束

相关推荐

Show previous month's posts

我已经设法在1月份浏览了本月的帖子,但我正在努力在去年12月获得上个月的帖子。我想这就是问题所在,那就是2014年,而我所追求的职位是2013年(12月)。如果有人能发现问题,我将不胜感激。我浏览了大量的例子,抄本和WordPress论坛,但没有找到任何有用的东西。 <!-- PREVIOUS MONTH NEWS --> <?php $prevMonth = date(\'M\', mktim