だいぶ前にXML-RPC投稿の記事を書きましたが、Wordpress3.4以降で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件のフィードバック
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)