How can I insert a post into wordpress and associate it with a category?

I have content from elsewhere that I would like to insert as a post in WordPress and then associate with an existing category. It is pretty straightforward to insert a new post into the wp_posts table, but I can’t seem to figure out how to construct a query to both insert a new post and at the same time associate the post with a category. How would one go about doing this?

If it helps, I am using WordPress 2.8

Related posts

Leave a Reply

3 comments

  1. Use this query:

    INSERT INTO wp_posts (post_title,post_content,post_name,post_date,post_date_gmt,post_modified,post_modified_gmt,post_author,post_status) 
    VALUES ('title','text','post_name',now(),now(),now(),now(),1,'publish')
    
    INSERT INTO wp_term_relationships (object_id,term_taxonomy_id) VALUES ([the_id_of_above_post],1)
    
  2. Categories are stored in the wp_terms tables, with a cross-reference between wp_posts and wp_terms stored in the wp_term_relationships table.

    So, you would first need to insert your post into the wp_posts table, and then for each of the existing categories that you want to associate it with, insert a record into the wp_term_relationships table.

    More info here: WordPress Database Description