XML-RPCなるものを利用すると、「プログラムからWordPressへ投稿する」といったことができるようになります。
XML-RPCとは
XML-RPC はインターネット上でリモートプロシージャコールを実行するためのプロトコルです。
XML-RPC メッセージは HTTP-POST リクエストで、リクエストの body は XML です。プロシージャはサーバ側で実行され、その結果もまた XML 形式で返されます。
よくわかりません。:$
じゃ、サンプルで理解してみたいと思います。
XML-RPCを利用したWordPressへの投稿サンプル
XML-RPCのライブラリを使っています。
ここから入手できます。
The Incutio XML-RPC Library for PHP
表示される画面中央部分にある、Download 付近のIXR_Library.inc.php.txt を右クリックして「リンク先を保存する」を実行します。
この時、IXR_Library.php という名前で保存します。
< ?php
/*
* XML-RPC接続テスト
*/
include_once('IXR_Library.php');
$site_url = 'http://hogehoge.com';
$userid = '[wordpressのID]';
$userpw = '[wordpressのPassword]';
//wordpressのxmlrpc.phpがある場所を指定
$base_uri = $site_url . '/xmlrpc.php';
//接続パラメータ
$encoding = 'UTF-8';
$method = 'metaWeblog.newPost';
$title = 'タイトル・タイトル・タイトル';
$description = '本文・本文・本文' . "\n" . 'あいうえお';
//実際に送るデータ
$params = array(
1,
$userid,
$userpw,
array(
'title' => $title,
'description' => $description,
'dateCreated' => '',
),
0, //0:草案 1:公開
);
// XML-RPC通信をする
$client = new IXR_Client($base_uri);
$return = $client->query($method, $params);
if ( !$return ) {
echo $client->getErrorCode() . ':' . $client->getErrorMessage() . '\n';
exit();
}
$postid = $client->getResponse(); //PostIDの取得
?>
これで、うまくWordPressへの投稿ができるようになりました。
※Movable TypeのmetaWeblog.newPostを使って、WordPressのDBにInsertしています。
参考資料
・WordPressでXML-RPCを使う : cafe関連サイトのシステム開発日記
・Movable Type で使える XML-RPC API
・XML-RPC 仕様書