我想出来了!显然,类别不再是POST数据库表的一部分,而是存储在其他地方。因此,使用wp\\u insert\\u post无法设置类别。
我必须使用wp\\u set\\u post\\u术语来设置类别,以便在发布时同时自动设置父项和子项。
wp\\u update\\u post似乎不会弄乱类别,所以没有必要将它们传递到那里。
以下是now working函数的一部分:
$category=get_the_category ($post_id);
$categories=array (\'89\', $category[0]->cat_ID);
//Publish or unpublish post
if (\'draft\' == get_post_status ($post_id)) {
$post = get_post($post_id,ARRAY_A);
$post[\'post_status\'] =\'publish\';
wp_insert_post($post);
wp_set_post_terms( $post_id, $categories, \'category\' );
}
else if (\'publish\' == get_post_status ($post_id)) {
$post = get_post($post_id,ARRAY_A);
$post[\'post_status\'] =\'draft\';
wp_update_post($post);
}
我希望这对某人有帮助!