Home > ソフトウェア > XML-RPCを使ってWordPressに記事を投稿する

XML-RPCを使ってWordPressに記事を投稿する

何番煎じだかわかりませんが,備忘録として.XML-RPCを使って,スクリプトからWordpressに記事を投稿しまくる方法です.参考にしたのは以下のエントリ.

見ればわかりますが,プログラミング言語はPHPです.まずは,何はなくとも,PHPでXML-RPCを扱えないといけないので,PEARからインストールします.

# pear install XML_RPC

続いて,これもサンプルコードそのままなので,深く考えずに,書いていきます.ところが,どっこい!このエントリではカスタムフィールドの扱い方が説明されていません.なんてこったい!これは困りました.今回はカスタムフィールドに値を入れられないと,ものごっつ面倒くさいことになるような件数を突っ込むのです.ですので,どうしてもXML-RPCでやりたいので,調べたところ,以下のエントリがヒットしました.

完璧です.以上より,作成したコードは以下の通り.

require_once("XML/RPC.php");

$host = 'example.com';
$xmlrpc_path = '/wordpress/xmlrpc.php';
$appkey = '';
$user = 'username';
$passwd = 'password';

$title = 'エントリのタイトル';
$categories = array(
  new XML_RPC_Value('未分類', 'string'), );
$description = 'ここに本文を入れます.';
$custom_fields = array();
$custom_fields[] = new XML_RPC_Value(
  array(
    'key' => new XML_RPC_Value('yomi', 'string'),
    'value' => new XML_RPC_Value('ふりがな', 'string')
  ), 'struct');

$c = new XML_RPC_client($xmlrpc_path, $host, 80);
$appkey = new XML_RPC_Value($appkey, 'string');
$username = new XML_RPC_Value($user, 'string');
$passwd = new XML_RPC_Value($passwd, 'string');
$message = new XML_RPC_Message(
  'blogger.getUsersBlogs',
  array($appkey, $username, $passwd));
$result = $c->send($message);

if(!$result){
  exit('Could not connect to the server.');
} else if($result->faultCode()){
  exit($result->faultString());
}

$blogs = XML_RPC_decode($result->value());
$blog_id = new XML_RPC_Value($blogs[0]["blogid"], 'string');
$content = new XML_RPC_Value(
  array(
    'title' => new XML_RPC_Value($title, 'string'),
    'categories' => new XML_RPC_Value($categories, 'array'),
    'description' => new XML_RPC_Value($description, 'string'),
    'dateCreated' => new XML_RPC_Value(time(), 'dateTime.iso8601'),
    'custom_fields' => new XML_RPC_Value($custom_fields, 'struct'),
  ), 'struct');
$publish = new XML_RPC_Value(1, "boolean");
$message = new XML_RPC_Message(
  'metaWeblog.newPost',
  array($blog_id, $username, $passwd, $content, $publish));
$result = $c->send($message);

if(!$result){
  exit('Could not connect to the server.');
} else if( $result->faultCode() ){
  exit($result->faultString());
}

簡単ね!あとは自動でガンガン投稿するようにゴニョゴニョすれば万事快調.

Home > ソフトウェア > XML-RPCを使ってWordPressに記事を投稿する

Return to page top