How would be the array, to insert a post category and subcategory?



The argument description in the Codex entry for wp_insert_post() has exactly what you need (reformatted).

'post_category'  => [ array(<category id>, <...>) ] 
//post_category no longer exists, try wp_set_post_terms() for setting a post's categories

So, per the Codex. Use wp_set_post_terms().

wp_set_post_terms( $post_id, array( 1, 2, 3), 'category', true );

For custom taxonomies:

'tax_input' => array( 
  'taxonomy_name' => array( 
); // support for custom taxonomies. 

Just change the taxonomy name to the one you want and replace the term placeholders with the category slugs you want.

The Codex weakly implies that you can no longer set the category via wp_insert_post(). However, while I haven't tested it I would not be surprised if that tax_input argument also works for the category taxonomy, like so:

'tax_input' => array( 
  'category' => array( 
|improve this answer|||||
  • I'm confused. Are you saying that post_category in wp_insert_post does work, or does it not? – Flimm Aug 29 '19 at 15:43

Worked for me with wp_set_object_terms()

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.