业务场景:许多文章既处于默认的未分类里,又处于其他分类里,用户能通过其他分类进入到未分类里。想要批量取消文章的未分类,而不破坏其他分类结构。
我们以产品为例,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
暂无评论内容