wp_insert_postを使おう。そのに

前回に続いて $postの中身を見ていきましょう。

$post = array(
  'ID'             => [ <投稿 ID> ] // 既存の投稿を更新する場合に指定。
  'post_content'   => [ <文字列> ] // 投稿の全文。
  'post_name'      => [ <文字列> ] // 投稿のスラッグ。
  'post_title'     => [ <文字列> ] // 投稿のタイトル。
  'post_status'    => [ 'draft' | 'publish' | 'pending'| 'future' | 'private' | 登録済みカスタムステータス ] // 公開ステータス。デフォルトは 'draft'。
  'post_type'      => [ 'post' | 'page' | 'link' | 'nav_menu_item' | カスタム投稿タイプ ] // 投稿タイプ。デフォルトは 'post'。
  'post_author'    => [ <ユーザー ID> ] // 作成者のユーザー ID。デフォルトはログイン中のユーザーの ID。
  'ping_status'    => [ 'closed' | 'open' ] // 'open' ならピンバック・トラックバックを許可。デフォルトはオプション 'default_ping_status' の値。
  'post_parent'    => [ <投稿 ID> ] // 親投稿の ID。デフォルトは 0。
  'menu_order'     => [ <順序値> ] // 固定ページを追加する場合、メニュー内の並び順を指定。デフォルトは 0。
  'to_ping'        => // スペースまたは改行で区切った、ピンを打つ予定の URL のリスト。デフォルトは空文字列。
  'pinged'         => // スペースまたは改行で区切った、ピンを打った URL のリスト。デフォルトは空文字列。
  'post_password'  => [ <文字列> ] // 投稿パスワード。デフォルトは空文字列。
  'guid'           => // 普通はこれを指定せず WordPress に任せてください。
  'post_content_filtered' => // 普通はこれを指定せず WordPress に任せてください。
  'post_excerpt'   => [ <文字列> ] // 投稿の抜粋。
  'post_date'      => [ Y-m-d H:i:s ] // 投稿の作成日時。
  'post_date_gmt'  => [ Y-m-d H:i:s ] // 投稿の作成日時(GMT)。
  'comment_status' => [ 'closed' | 'open' ] // 'open' ならコメントを許可。デフォルトはオプション 'default_comment_status' の値、または 'closed'。
  'post_category'  => [ array(<カテゴリー ID>, ...) ] // 投稿カテゴリー。デフォルトは空(カテゴリーなし)。
  'tags_input'     => [ '<tag>, <tag>, ...' | array ] // 投稿タグ。デフォルトは空(タグなし)。
  'tax_input'      => [ array( <タクソノミー> => <array | string>, ...) ] // カスタムタクソノミーとターム。デフォルトは空。
  'page_template'  => [ <文字列> ] // テンプレートファイルの名前、例えば template.php 等。デフォルトは空。
);  

これら全てを適用しなくてもよく自分で投稿する際に設定したいところだけパラメータとして記述してやればよいです。