我正在根据post\\u状态设置分类。它可以根据需要工作,但如果选择了特定的分类法,我希望允许覆盖该分类法。
这是代码
function add_categories_automatically($postID) {
if(get_post_status($postID) == \'draft\'){
$catsID = array(1); //active
wp_set_post_categories($postID, $catsID);
}
if(get_post_status($postID) == \'publish\'){
$catsID = array(5); //complete
wp_set_post_categories($postID, $catsID);
}
if(get_post_status($postID) == \'publish\' && has_category( \'billed\' ) ){
$catsID = array(16); //billed
wp_set_post_categories($postID, $catsID);
}
}
add_action(\'save_post\', \'add_categories_automatically\');
在最后一条if语句中,我尝试使用&&;如果发布了帖子并选择了付费类别,则设置新类别。它只是在前面的if语句中一直被设置为id 5。
关于如何使最后一个if语句起作用,有什么想法吗?
最合适的回答,由SO网友:Nik 整理而成
这就是在上面WebElaine的帮助下工作的原因。我必须把帖子传给has_category()
然后设置变量。
function add_categories_automatically($postID) {
$p_published = get_post_status($postID) == \'publish\';
$p_draft = get_post_status($postID) == \'draft\';
$p_cat = has_category( \'billed\', $postID);
if ($p_draft == \'draft\'){
$catsID = array(1); //active
wp_set_post_categories($postID, $catsID);
}
if ($p_published == \'publish\'){
$catsID = array(5); //complete
wp_set_post_categories($postID, $catsID);
}
if($p_published == \'publish\' && $p_cat ){
$catsID = array(16); //billed
wp_set_post_categories($postID, $catsID);
}
}
add_action(\'save_post\', \'add_categories_automatically\');