XML-RPCを使ってWordPressへ投稿する

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です