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 仕様書