WordPressにXML-RPCで投稿する(WP3.4以降)

だいぶ前にXML-RPC投稿の記事を書きましたが、Wordpress3.4以降でXML-RPC仕様が追加されたらしく、投稿が簡単になっているようです。

XML-RPC仕様

Googleさんで投稿の方法を調べると「WordPressにXML-RPCでお手軽に記事投稿できるクラス作ったよ」という記事にあたりました。
XML-RPCでポストすることは簡単なのですが、タクソノミーとかで「無い時は作る」という処理を入れたり面倒な部分も多く存在します。
こちらのクラスを使用すると「無い時は作る」という処理もやってくれるので便利です。

サイトの右上の「Github」から「wp.xmlrpc.php」をダウンロードもしくはコピーして、適当なところに設置します。
私はCakephpを使用しているのでVendorに入れました。それとPEARのXML-RPCを使用していますので、それもダウンロードして設置します。
wp.xmlrpc.phpでXML-RPCを読み込んでいるのでパスを確認。

使い方はサイトに書いてあるとおりで、Wordpressの情報を入れてnewPostで投稿されます。
Cakephpからの投稿例。

App::import('Vendor', 'wpxmlrpc', array('file'=>'wp.xmlrpc.php'));

$host = 'localhost';
$user = 'admin';
$password = 'xxxxxxx';
$endpoint = 'http://localhost/xxxxxx/xmlrpc.php';

$wp = new wpXMLRPC($endpoint, $host, $user, $password);

// 送信データ
$data = array(
           'post_title' => 'タイトル',
           'post_content' => '内容',
           'custom_fields' => array(
                                  array('key'=>'カスタムフィールドのkey', 'value' => 'カスタムフィールドの内容'),
                                  array('key'=>'カスタムフィールドのkey', 'value' => 'カスタムフィールドの内容')
            ),
            'terms_names' => array(
                                  'category' => array('カテゴリー'),
                                  'カスタムタクソノミーの名前' => array('タクソノミー')
            )
);

// 記事投稿
$wp->newPost($data);

指定していないフィールドで

Notice (8): Undefined index: post_type

とか表示されるので、少し変更が必要かも。

「WordPressにXML-RPCで投稿する(WP3.4以降)」への1件のフィードバック

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)