WordPressにXML-RPCとPHPをつかって記事を自動投稿する方法

最初の頃に取り組んだのは、

ネットからデータをごにょごにょして、取得して(そのうち書きますね)

WordPressへの自動投稿ってのをやり始めました。

まず、PHPから、XML−RPCを利用するために、

The Incutio XML-RPC Library for PHPをインストールします。

他にもいろんなライブラリがあるんですが、これ
「IXR_Library.php」1つのファイルをインクルードするだけで済むので、一番お手軽です。


ここの、The Incutio XML-RPC Library for PHP

Download the Library

ってとこからファイルを落としてください。


次に、投稿するために、必要な情報は、

投稿先のWordPress
・アドレス
・ユーザ名
・パスワード
・ブログID(基本「1」です、マルチサイト化してる場合は、変わります。)

require_once "IXR_Library.php";

//hogehoge.com は投稿先のWordPressのアドレスにかえる
$client = new IXR_Client("http://hogehoge.com/wp/xmlrpc.php");

$status = $client->query(
  "wp.newPost", //使うAPIを指定
  1,     // blog ID: 通常は1、
  $user, // ユーザー名
  $pass, // パスワード
  array(
    'post_author' => $user,     // 投稿者ID 未設定の場合投稿者名なしになる。
    'post_status' => 'publish', // 投稿状態(draftにすると下書きにできる)
    'post_title'   => "記事のタイトル",   // タイトル
    'post_content' => "記事の本文",      // 本文
    'post_excerpt' => "記事の抜粋", 	   //抜粋、入らなければ削除
    'terms_names'  => array(
    	'category' => "カテゴリー"
		) // 複数のカテゴリにしたければ、配列の要素追加
  )
);


これで、WordPressへの記事投稿が可能になります。

記事本文をいれている、配列に要素を足すと、
・予約投稿ができたり
アイキャッチの画像が追加できたりします。

ここの、XML-RPC WordPress API/Posts « WordPress Codex
Parameters にその辺りの要素が書いています。

これもそのうち詳しく書こうかな。

2015/12/6 追記
mrm2.hatenablog.com

投稿したあとの、エラー制御について、ちょっと追加しました。