In this article, I’ll show you how you can easily add data (posts, comments, categories, etc) to your WordPress blog, without any manual effort.
Do you remember back in 2008, when I created WP Vote? This site was the first (as far as I know) social voting site created 100% within WordPress. Users were able to submit a story, which was automatically published on the blog.
Inserting a post programmatically in WordPress is extremely easy. You have to use the wp_insert_post() function, which takes an array as a parameter.
Here is a working example. If you want to test it, paste the code below on your functions.php file.
Cool, isn’t it? Let have a closer look to the parameters specified in the $new_post array:
- post_title: the name of the post.
- post_content: the content of the post
- post_status: the post status (published, draft, etc)
- post_date: use date() or specify a custom date
- post_author: Author id of the post author
- post_type: Can be post, page, or a custom post type
- post_category An array of categories ids
Inserting comments is not harder than inserting posts. I personally never used this code, but here is it in case you need it. To give it a try, simply paste it in your functions.php file.
Just like the wp_insert_post() function, wp_insert_comment() takes an array as a parameter. Here are the data used:
- comment_post_ID: ID of the commented post
- comment_author: Name of the comment author
- comment_author_email: Email address of the comment author
- comment_author_url: Website of the comment author
- comment_content: Text of the comment
- comment_author_IP: IP address of the comment author
- comment_agent: User agent of the commenter browser
- comment_date: Date of the comment
- comment_date_gmt: GMT date of the comment
- comment_approved: Is the comment approved? 1 for yes and 0 for “awaiting moderation”
Adding Categories To A Post
Now that we saw how to insert a post or a comment into WordPress database, let’s see how to make a post part of one (or more) categories. WordPress has a built-in function for that, named wp_set_object_terms().
What you have to do is to create an array with the desired categories ID, and then use the function as shown below:
The wp_set_object_terms() function take 3 parameters: The post ID, an array of categories ID, and the taxonomy type (In this example, category).
Adding Tag to A Post
Adding tags to a post is extremely simple as well. Even better, it does not require a new function, you can do so by using wp_set_object_terms().
Take a look at the example below:
Looks very similar with the previous piece of code, which allowed us to add categories to a post, isn’t it? In fact, the only difference is the taxonomy type: Here the parameter is post_tag instead of category.
So how does it work? First, a function has been created. This function make sure the post isn’t a revision on then adds a custom field named field-name, with custom value as a value.
Then, a “hook” is used to make sure that every time a post or page will be published, the add_custom_field_automatically() function will be called.