我正试图在发布后为帖子设置帖子条款
我使用以下代码,但它不起作用
add_action(\'pending_to_publish\', \'oj_publish_post\');
function oj_publish_post($post_id) {
$taxonomy = \'category\';
$term_id = array(8);
$term_id = array_map(\'intval\', $term_id);
wp_set_post_terms( $post_id ,$term_id, $taxonomy,true);
}
但是,当我手动通过岗位id时。e而不是使用post\\u id。我使用773它可以工作
add_action(\'pending_to_publish\', \'oj_publish_post\');
function oj_publish_post($post_id) {
$taxonomy = \'category\';
$term_id = array(8);
$term_id = array_map(\'intval\', $term_id);
wp_set_post_terms( 773 ,$term_id, $taxonomy,true);
}
我做错了什么,请帮忙
最合适的回答,由SO网友:Buttered_Toast 整理而成
来自的参数pending_to_publish
行动$post_id
在您的情况下,不是ID而是数组(要发布的回调)。
我认为使用publish_post
行动,那样$post_id
将实际成为帖子id。
此外,这是一个非常普遍的操作,因此如果您有多个职位类型,最好检查当前的职位类型是否是您要添加术语的实际职位类型
Edited answer
或者在您的情况下,您可以按以下方式传递post id
add_action(\'pending_to_publish\', \'oj_publish_post\');
function oj_publish_post($post) {
$taxonomy = \'category\';
$term_id = array(8);
$term_id = array_map(\'intval\', $term_id);
wp_set_post_terms( $post->ID ,$term_id, $taxonomy,true);
}