以编程方式将自定义帖子添加到自定义分类

问题描述:

I have custom post created at user's registration. There is also a custom taxonomy ('connection1') created. I need to add this post to that taxonomy.

Post is added fine. Taxonomy is added no problem as well. But for some reason, post is not added to the taxonomy

       $user = new WP_User( $user_id );
       $user->set_role( 'participation' );
       $my_cptpost_args = array(
            'post_title' => 'user-'.$user_id,
            'slug' => $user_id,
            'post_status'   => 'publish',
            'post_type' => 'profile'
        );
        $cpt_id = wp_insert_post( $my_cptpost_args, $wp_error);
        wp_insert_term($user_id,'connection1');
        $term_id = term_exists( $user_id, 'connection1' ); 
        wp_set_post_terms($cpt_id , array( $term_id ), 'connection1' );

我在用户注册时创建了自定义帖子。 还创建了自定义分类('connection1')。 我需要将这篇文章添加到该分类中。 p>

帖子添加正常。 分类标准也没有问题。 但由于某种原因,帖子没有添加到分类中 p>

  $ user = new WP_User($ user_id); 
 $ user-> set_role('participation');  
 $ my_cptpost_args = array(
'post_title'=>'user  - '。$ user_id,
'slug'=> $ user_id,
'post_status'=>'publish',
'post_type  '=>'个人资料'
); 
 $ cpt_id = wp_insert_post($ my_cptpost_args,$ wp_error); 
 wp_insert_term($ user_id,'connection1'); 
 $ term_id = term_exists($ user_id,'connection1'  );  
 wp_set_post_terms($ cpt_id,array($ term_id),'connection1'); 
  code>  pre> 
  div>

The issue is related to term_exists function. It can return null/ID/array depending on what data you provided. Check docs. In your case, it will return an array which then you try to assign to terms array which will fail. Also no need to use term_exists function since wp_insert_term will return term ID. Your code should look like this:

$new_term = wp_insert_term($user_id,'connection1');
if( ! is_wp_error($new_term) ) {
    wp_set_post_terms($cpt_id , $new_term['term_id'], 'connection1' );
}