【とっても便利】WordPressの記事投稿できるクラス『wp.xmlrpc.php』【自動投稿】
以前
【wordpress】PEARをつかって自動で記事を投稿する方法という記事を書きましたが、
カテゴリーが設定できない、サムネイル画像が設定できないという未解決の要素があり、
若干不便でした。
しかし、
今回はすべて解決した記事投稿できるクラスのご紹介です。
- WordPressにXML-RPCでお手軽に記事投稿できるクラス作ったよ
- http://damepo.me/wp-xml-rpc-php-class/
- WordPress XML-RPC Class
- WordPress XML-RPC Class

ここがすごい!!
- 設定が簡単!
-
自分で設定しなければならないのは、これだけ。
// 読み込み require_once('wp.xmlrpc.php'); // 設定 $host = 'hogehoge.net'; $user = 'admin'; $password = 'mypassword'; $endpoint = 'http://hogehoge.net/xmlrpc.php'; // インスタンス生成 $wp = new wpXMLRPC($endpoint, $host, $user, $password); // 送信データ $data = array( 'post_title' => 'タイトル', 'post_content' => '内容です!', 'post_thumbnail' => 'test.jpg', // 他ドメインも可 'terms_names' => array( 'post_tag' => array('タグ1', 'タグ2') ) ); // 記事投稿 $wp->newPost($data);
- 新規投稿のパラメータをちゃんと押さえている!
- サムネイル画像もタグもカテゴリーも、なんでも設定できます。
必要なもの
- PHP5.3+
- PHPで動いているので、レンタルサーバーを借りる場合、5.3以上に設定できるものでなくてはいけません。 5.2だと動かないクラスがあるため、エラーしてしまいます。
- WordPress3.4+
- こちらは、最新のwordpressを使えば問題ありません。
- PEAR::XML_RPC
- 難しいとすればこちらなので、下記にてご説明します。
PEARのインストールから設定まで
こちらも参考さくらでpearインストール
- 1.インストール用のソースを入手する
- http://pear.php.net/go-pear
左のリンクで「対象をファイルに保存」してtxtファイルをダウンロードする。
その後、名前を「go-pear.php」に変える。
- 2.FTPでアップ
- /deck というディレクトリを作って、その中に先ほどのphpファイルをあげる。
ブラウザでhttp://ドメイン名/保存ディレクトリ/go-pear.phpに
アクセスするとインストール画面がでます。
(ロリポップは、アクセスできない場所にファイルを置けないため)
- 3.インストール画面
- 「Next >>」をクリックする。
- 4.インストールする項目を設定
-
- 1.Installation prefix ($prefix) /home/users/2/ドメイン/web/作ったディレクト(今回の場合deck)
- 11. php.exe path, optional (CLI command tools) ロリポップの場合は下記になる。
- installをクリック
Installation prefixは、Webからアクセスできないディレクトリが望ましいが、ロリポップではそれが無理なため、 あとでlibsディレクトリに.htaccessを指定する。
中には
deny from all
と書くだけでok。
/usr/local/bin/php
- 5.インストール完了
- エラーが出たけど、Installation Completed !とでれば、とりあえずOK。
- 6.XML-RPCをダウンロード
- Search package by name にRPCと入力
結果から、下記をクリック(エラーしてて分かりにくいが、詳細へ飛ぶリンク)
詳細からインストール
インストール完了
wp.xmlrpc.phpの修正
wp.xmlrpc.phpの17行目を先ほどのXML-RPCのディレクトリを参照できるように修正します。
<?php /** * WordPress XML-RPC Class * * XML-RPCによる通信を簡単に行うためのラッパークラスです。 * * PHP versions 5.3+ * WordPress version 3.4+ * * @category Web Services * @author moi <twitter: @moi_fc2> * @copyright 2012 moi * @license MIT Licence * @version v1.0.2 */ require_once('XML/RPC.php');
これで完成です。後は、cronで実行するなりなんなりできます。
ちなみに、うちのブログの毎日定時に投稿されている記事は、このクラスを使用しています。
感謝感激です。
[…] 【とっても便利】WordPressの記事投稿できるクラス『wp.xmlrpc.php』【自動投稿… […]
アマゾンで「WordPressで作るRSSの自動収集とブログ自動投稿」を購入させていただきました。良い本をありがとうございます(^ω^)1つ質問させていただきたいのですが、demo.phpを動かしてみるとWordpressに1度は投稿できるのですが、2度同じ記事を投稿しようとすると[error] => 無効なキーワード ID が出て投稿に失敗してしまいます。どうやらpost_tagが日本語でなければ同じ記事を投稿できるようなのですが、どこを修正したら日本語でも同じ記事を投稿できるようになるのでしょうか?良かったらご教授ください。
ご返答が大変遅くなり申し訳ございません。
恐らくですが、tagのパラメーターに、全角文字が入っているためだと思われます。
tagはWardpressのタグ『スラッグ』に該当するもので、
半角でないとエラーします。
[…] 【とっても便利】WordPressの記事投稿できるクラス『wp.xmlrpc.php』【自動投稿… […]