Published on

外部から取得したデータをWPの記事として流し込む方法

目次

APIやスクレイピングで引っ張ってきた情報をWordpressで記事にする方法です。

通常Wordpressで記事を作成するには管理画面の「投稿」から記事を作成します。

APIを使用した場合などは、この投稿から記事を作成することができないので、内部(function.php)などでWordpressが用意している特定の関数を使用することで管理画面外から記事が作成できます。

使用する関数

使うのはこれです。「wp insert post」

※参照
http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_insert_post
これだけを使って投稿情報を作成するだけで記事が作成されます。

使い方

//基本はこれ
<?php wp_insert_post( $post, $wp_error ); ?>

$postに必要な情報を入れるだけです。
必須パラメータは投稿タイトルと本文のみです。
デフォルトでは投稿IDは自動割当、ステータスは下書きになります。

$my_post = array(
  'post_title'    => 'タイトル',
  'post_content'  => '本文',
  'post_status'   => 'publish'
);

// 投稿を作成
wp_insert_post( $my_post );

これだけで投稿完了です。

APIからの情報などは変数に格納して、それぞれ適切な場所に記述します。

//変数に入れる
$title = 'タイトルテスト';
$content = '本文テスト';

$my_post = array(
  'post_title'    => $title,
  'post_content'  => $content,
  'post_status'   => 'publish',
   //カテゴリはIDを配列で指定できます。
  'post_category' => array(3,15)
);

// 投稿をデータベースへ追加
wp_insert_post( $my_post );

カテゴリとタグは配列で指定できます。
'post_category'と'tags_input' にそれぞれIDを配列で指定することで反映されます。

その他設定できるパラメータは多くありますので投稿情報をかなり細かく指定できます。

以上となりますが、
取得した情報をwp insert postを使って記事にする方法でした。