批量取消文章、产品的某一分类

业务场景:许多文章既处于默认的未分类里,又处于其他分类里,用户能通过其他分类进入到未分类里。想要批量取消文章的未分类,而不破坏其他分类结构。

我们以产品为例,product_cat为分类法,15为默认分类(未分类):

<?php
include("wp-load.php");
//批量产品取消某个分类
//思路:如果产品在这个分类下,且还在其他分类,那么取消这个分类。
global $wpdb;
//1、获取所有产品
$args = array(
    'numberposts' => -1,
    'post_type' => 'product',
    'post_status' => 'any',
    'product_cat' => 'uncategorized',
);
$postslists = get_posts( $args );
// var_dump($postslists);

//2、循环获取产品的分类,判断分类个数,如果分类个数不等于1,则强制去除这个分类后再设置分类
$i = 0;
$eidtproduct = array();
foreach ($postslists as $postslist){
    $terms = wp_get_post_terms( $postslist->ID, 'product_cat' );
    if(count($terms) != 1){
        $wpdb->delete( 'wp_term_relationships', array( 'object_id' => $postslist->ID,'term_taxonomy_id' => 15) );
        // var_dump($postslist);
    }
    $i++;
}

经过处理,留在未分类里面的是只有未分类这个默认分类的,只需手动批量添加分类(wordpress后台有),然后再次执行PHP。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称常用语 夸夸
夸夸
还有吗!没看够!
表情代码图片

    暂无评论内容