如果另一个类别未设置,我将尝试取消设置该类别。
首先,我有一个函数,如果设置了另一个类别,可以添加的类别,例如:
function add_category_automatically($post_ID) {
global $wpdb;
if ( in_category(\'3152\') ) {
$cat = array(1208);
wp_set_object_terms($post_ID, $cat, \'category\', true);
}
}
add\\u action(\'save\\u post\',\'add\\u category\\u automatically\');
如果帖子的类别id为3152,则会添加id为1208的类别。
现在,我需要一个函数,它的作用正好相反,如果id为3152的类别被取消设置,那么我需要这个函数也取消id为1208的类别的设置。
我知道我可以简单地做这样的事情,但它会把事情搞砸,因为我希望最终用户能够自己设置id为1208的类别,只有在id为3152的类别被删除时,它才应该被删除。
function remove_category_automatically($post_ID) {
global $wpdb;
if ( !in_category(\'3152\') ) {
$cat = array(1208);
wp_remove_object_terms($post_ID, $cat, \'category\', true);
}
}
add\\u action(\'save\\u post\',\'remove\\u category\\u automatically\');
因此,上面的代码不起作用,因为使用此代码您无法自行设置类别1208,除非有3152,否则它将始终删除1208。我希望一些帖子有类别1208,而没有类别3152。
所以我尝试了这样的方法,但它并没有真正起作用。
function on_all_status_transitions( $new_status, $old_status, $post ) {
if ( in_category(\'3152\') ) {
if ( $new_status != $old_status && has_category(\'3152\') ) {
$cat = array(3152);
wp_remove_object_terms($post_ID, $cat, \'category\', true);
}
}
}
添加\\u操作(“transition\\u post\\u status”、“on\\u all\\u status\\u transitions”,10,3);
如有任何解决方法,我们将不胜感激。