【とっても便利】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
20131101

ここがすごい!!

設定が簡単!
自分で設定しなければならないのは、これだけ。
// 読み込み
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 >>」をクリックする。
pear_0000


4.インストールする項目を設定
  • 1.Installation prefix ($prefix)
  • /home/users/2/ドメイン/web/作ったディレクト(今回の場合deck)

    Installation prefixは、Webからアクセスできないディレクトリが望ましいが、ロリポップではそれが無理なため、 あとでlibsディレクトリに.htaccessを指定する。
    中には
    deny from all
    と書くだけでok。
  • 11. php.exe path, optional (CLI command tools)
  • ロリポップの場合は下記になる。
    /usr/local/bin/php

  • installをクリック


5.インストール完了
エラーが出たけど、Installation Completed !とでれば、とりあえずOK。
pear_0001


6.XML-RPCをダウンロード
Search package by name にRPCと入力 結果から、下記をクリック(エラーしてて分かりにくいが、詳細へ飛ぶリンク)
pear_0002

詳細からインストール
pear_0004

インストール完了
pear_0005

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で実行するなりなんなりできます。
ちなみに、うちのブログの毎日定時に投稿されている記事は、このクラスを使用しています。
感謝感激です。