PHPでWordPressに自動投稿「Wordpress XML-RPC Class」
「Wordpress XML-RPC Class」というクラスを使用するとWordPressの自動投稿ができるようなので 試してみたいと思います。
1.go-pear.php(PEAR)を入手
http://pear.php.net/go-pear 上記のリンクで「対象をファイルに保存」してtxtファイルをダウンロードする。 その後、名前を「go-pear.php」に変える。
2.go-pear.phpをサーバに上げる
新しくwordpressフォルダ下に「install」という名前のフォルダを作成しその下に「go-pear.php」を入れる
/var/www/wordpress/install/go-pear.php
3.go-pear.php(PEAR)をインストール
http://[自サイトのドメイン]/install/go-pear.phpにアクセス 1.「Next >>」を押下 2. Installation prefix ($prefix) =>「http://[自サイトのドメイン]/install」となっている事を確認 3. 11. php.exe path, optional (CLI command tools) => 「php.exe path, optional」を設定 4. installを押下 5. しばらく待機する.... ... ... ... 6. 21%で止まっていたのでhttpdのerror.logをのぞいてみた
[Thu Dec 31 17:51:01 2015] [error] [client 114.186.29.67] PHP Fatal error: Class 'PEAR' not found in /var/www/wordpress/install/go-pear.php on line 697, referer: http://manyitem.link/install/go-pear.php?step=install
どうやらdownload_url()という関数を使用するが、リダイレクトに対応してない為 正常に動作しないらしい。 新go-pear.php そこでファイルを上書して再度Installを実行する。
Installation Completed !
無事インストール完了!
4.XML-RPCをダウンロード
http://[自サイトのドメイン]/install/index.phpにアクセス 右上のSearch package by nameという所でRPCと入力 +マークを押下 インストールが終われば完了
5.Wordpress XML-RPC Classのダウンロード
wp.xmlrpc.phpとdemo.phpをサーバに上げる
/var/www/wordpress/wp.xmlrpc.php /var/www/wordpress/demo/demo.php
6.記事のテスト投稿を行う
wp.xmlrpc.phpを修正
require_once('install/PEAR/XML/RPC.php');
demo.phpを修正
<?php require_once('../wp.xmlrpc.php'); $host = 'localhost'; $user = '[ユーザ名]'; $password = '[password]'; $endpoint = 'http://[自サイトのドメイン]/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); ?>
投稿テスト開始 http://[自サイトのドメイン]/demo/demo.phpにアクセスする 記事が投稿されることを確認する 完了。
どうやらpost_tagに全角文字が使えない模様 その場合、「[error] => 無効なキーワード ID」が返ってきます。 また、同じ記事の連投も同様のメッセージが返ってきます。 このサンプルでは下書き投稿となってしまいます。 公開設定で投稿したい場合は 'post_status' => 'publish',を追加しましょう。
参考サイト 【とっても便利】WordPressの記事投稿できるクラス『wp.xmlrpc.php』【自動投稿】 | トリまとめブログ PEARのブラウザによるインストールがうまくいかなかったのでgo-pear.phpを修正 - 風柳メモ