Use the wp_insert_post() function, which takes an array as a parameter.
<?php /** Make sure that the WordPress bootstrap has run before continuing. */ require(dirname(__FILE__) . '/wp-load.php'); global $user_ID; $new_post = array( 'post_title' => 'My New Post', 'post_content' => 'Lorem ipsum dolor sit amet...', 'post_status' => 'publish', 'post_date' => date('Y-m-d H:i:s'), 'post_author' => $user_ID, 'post_type' => 'post', 'post_category' => array(0) ); $post_id = wp_insert_post($new_post); ?>
- 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