WordPressにXML-RPCとPHPをつかって記事を自動投稿する方法(2)

mrm2.hatenablog.com


これの続き、

で、記事を投稿するところまでは、これでいいんだけど、投稿した後に、

if(!$status){
	//投稿失敗時に、エラーメッセージ・コードを出力
  	echo $client->getErrorCode().' : '.$client->getErrorMessage() . "]\n";
} else {
 	$postid = $client->getResponse(); //戻り値は投稿ID
}

こうやってあげると、エラチェックができる。

投稿成功時には、postidが戻ってくるので

それをつかって、さらになんかやるとかできる。

WordPressにXML-RPCとPHPをつかって記事を自動投稿する方法

最初の頃に取り組んだのは、

ネットからデータをごにょごにょして、取得して(そのうち書きますね)

WordPressへの自動投稿ってのをやり始めました。

まず、PHPから、XML−RPCを利用するために、

The Incutio XML-RPC Library for PHPをインストールします。

他にもいろんなライブラリがあるんですが、これ
「IXR_Library.php」1つのファイルをインクルードするだけで済むので、一番お手軽です。


ここの、The Incutio XML-RPC Library for PHP

Download the Library

ってとこからファイルを落としてください。


次に、投稿するために、必要な情報は、

投稿先のWordPress
・アドレス
・ユーザ名
・パスワード
・ブログID(基本「1」です、マルチサイト化してる場合は、変わります。)

require_once "IXR_Library.php";

//hogehoge.com は投稿先のWordPressのアドレスにかえる
$client = new IXR_Client("http://hogehoge.com/wp/xmlrpc.php");

$status = $client->query(
  "wp.newPost", //使うAPIを指定
  1,     // blog ID: 通常は1、
  $user, // ユーザー名
  $pass, // パスワード
  array(
    'post_author' => $user,     // 投稿者ID 未設定の場合投稿者名なしになる。
    'post_status' => 'publish', // 投稿状態(draftにすると下書きにできる)
    'post_title'   => "記事のタイトル",   // タイトル
    'post_content' => "記事の本文",      // 本文
    'post_excerpt' => "記事の抜粋", 	   //抜粋、入らなければ削除
    'terms_names'  => array(
    	'category' => "カテゴリー"
		) // 複数のカテゴリにしたければ、配列の要素追加
  )
);


これで、WordPressへの記事投稿が可能になります。

記事本文をいれている、配列に要素を足すと、
・予約投稿ができたり
アイキャッチの画像が追加できたりします。

ここの、XML-RPC WordPress API/Posts « WordPress Codex
Parameters にその辺りの要素が書いています。

これもそのうち詳しく書こうかな。

2015/12/6 追記
mrm2.hatenablog.com

投稿したあとの、エラー制御について、ちょっと追加しました。

ブログ始めます。

インターネットって便利ですね。

 

システム屋さんなんですけど、とあることからアフィリエイトを始めました。

 

まーもともとシステム系の知識はあるので、ある程度はなんとかなるんですが、

どーしても詰まるところがあったりします。

 

そんな時は「ググる」結構簡単に解決する記事が見つかるんですよね。

 

見つけてばかりもなんなので、

見つけられるようなこと書いていこうかなとふと思い、

 

今更なんですが、今日から「ブログ始めます。」

 

システム屋さんなんで、当然プログラム(PHPがメインです)を

ちょこちょこ利用して、アフィリやってます。

 

いろんなASPAPIのサービスをごにょごにょやったり、

WordPressをごにょごにょやったり

 

その中で、困ったこと、解決したこと、応用したこと

なんかを書いて、誰かに発見されたいなーと

 

あと、自分どうにもならない時は、ツール買ってみたりとかもしてるんで、

その辺も、システム屋さん目線で感想なんかかいていこうかなと。

 

続きは明日^^