在发布帖子时设置帖子条款

时间:2021-07-14 作者:user7459842

我正试图在发布后为帖子设置帖子条款

我使用以下代码,但它不起作用

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);
    }
我做错了什么,请帮忙

1 个回复
最合适的回答,由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);
}

相关推荐

如何通过‘Get_Terms’获取‘Term’父ID的直接子ID?

我的分类方向如下:Series (ID: 15) (root category)在“系列”下,存在以下子类别:A系列(包含0篇帖子)B系列(包含1篇帖子)C系列(包含0篇帖子)如何使用get_terms\'?我使用了以下参数结构发送为$args (term query)至\'get_terms\' 没有结果。它返回一个空数组:$arg[\'taxonomy\'] = \'category\'; $arg[\'hide_empty\'] = 0; $arg[\'parent\'] = 15;