将选定的分类术语复制/移动到帖子的另一个分类

时间:2015-05-09 作者:Mikel

我已经搜索了大约2个小时,找到了一种将每个帖子的选定分类法值复制/移动到另一个帖子的解决方案。情况是这样的。

我在一个网站上工作,该网站的帖子类型为articles 我要把它们移回自然状态post 岗位类型。在articles, 我已经有了一个针对类别的分类法,并且我已经成功地将术语转移到了post 类型

现在,我已经准备好批量转换帖子了(articles -> post) 这不是问题。但我需要在旧类别分类法中选中的选定术语也在新类别分类法中选中/标记。

有没有办法以批量方式实现这一点。我不想让我的客户不得不浏览每一个帖子并评论他们的分类条款。

提前感谢您!

2 个回复
SO网友:HandiworkNYC.com

这将获取所有带有$old\\u tax的帖子,将条款从$old\\u tax复制到$new\\u tax,然后为这些帖子设置$new\\u tax条款。

<?php
    function convert_tax($old_tax, $new_tax) {
        $pages = get_posts(array(
            \'post_type\' => \'post\',
            \'posts_per_page\' => -1,
            \'tax_query\' => array(
                array(
                    \'taxonomy\' => $old_tax,
                    \'operator\' => \'EXISTS\'
                )
            )
        ));

        foreach($pages as $post) {
            $terms = get_the_terms( $post->ID, $old_tax );
            $term = array();

            foreach( $terms as $t ) {
                if( get_term_by( \'name\', $t->name, $new_tax ) == false ) {
                    wp_insert_term( $t->name, $new_tax, $args = array() );
                    wp_set_post_terms($post->ID, array(intval($t->ID)), $new_tax ); 
                }
            }
        }
    }

    convert_tax(\'policy_area\', \'topic\')

?>

SO网友:locomo

只要文章分类法中的slug与默认类别中的slug完全对应,您就应该能够为每篇文章执行类似的操作:

        $article_cats = wp_get_object_terms( $article_id, \'article-category\' );
        $new_cats = array();
        foreach( $article_cats AS $t ) {
            $new_cats[] = $t->slug;
        }
        wp_set_object_terms( $post_id, $new_cats, \'categories\' );

结束

相关推荐

Sorting Posts by custom field

我正在尝试按自定义字段对帖子进行排序artwork_title. 当我使用下面的代码时,我只会得到一个特定类别的帖子,无论我在哪个类别的存档中。此外,分页显示正确的页数,但转到下一页时始终显示相同的帖子集。有人知道我做错了什么吗?<?php $query = new WP_Query( array( \'posts_per_page\' => 20, \'orderby\' => \'meta_value\',