- WordPress
- 2016-08-19 - 更新:2016-09-23
この記事は最終更新日から1年以上経過しています。
The Incutio XML-RPC Library for PHP
http://scripts.incutio.com/xmlrpc/
「Download the Library」をクリックしダウンロードします。
解凍すると「php-ixr-1.7.4」というフォルダーに「IXR_Library.php」というファイルがありますので
このファイルをインクルードするだけです
ライブラリをインクルード
include_once("php-ixr-1.7.4/IXR_Library.php");
投稿先アドレスを引数としてインスタンスを生成します。
$client = new IXR_Client("http://www.example.jp/xmlrpc.php");
WordPressのユーザー名とパスワードを設定します。
$wp_username = "username"; $wp_password = "password";
投稿の処理
$status = $client->query( "wp.newPost", //使うAPIを指定(wp.newPostは、新規投稿) 1, //ブログID 通常は1、マルチサイトの場合は変更が必要 $wp_username, //ユーザー名 $wp_password, //パスワード array( "post_author" => 1, //投稿者ID 未指定の場合、投稿者名なしになります "post_status" => "publish", //投稿状態 "post_title" => "テスト投稿です。", //タイトル "post_content" => "テスト投稿本文です。", //本文 "terms" => array("category" => array(1)), //カテゴリ ) ); if(!$status){ die("エラー! - ".$client->getErrorCode()." : ".$client->getErrorMessage()); } else { $post_id = $client->getResponse(); //返り値は投稿ID }
予約投稿とする場合はquery
メソッドの第5引数の配列に以下を追加します。
"post_date" => $postDate,
$postDate
は以下のように作成します。
$postDate = new IXR_Date(time() + 60 * 60);
併せてpost_status
をfuture
とします。
タグを追加する場合はquery
メソッドの第5引数の配列に以下を追加します。
"terms_names" => array("post_tag" => array("タグ1", "タグ2")),
アイキャッチ画像を登録することもできます。
$imgInfo = getimagesize("test.jpg"); $type = $imgInfo["mime"]; $bits = new IXR_Base64(file_get_contents("test.jpg")); $status2 = $client->query( "wp.uploadFile", 1, $wp_username, $wp_password, array( "name" => "test.jpg", "type" => $type, "bits" => $bits, "overwrite" => false, "post_id" => $post_id ) ); $img = $client->getResponse();
ここまでで画像自体の登録は完了ですが、投稿に対するアイキャッチ画像として登録してやる必要があります。
$status3 = $client->query( "wp.editPost", 1, $wp_username, $wp_password, $post_id, array("post_thumbnail" => $img["id"]) ); $thumb = $client->getResponse();
参考URL:
http://nekoriki.net/45
http://nekoriki.net/47
http://nekoriki.net/50
XML-RPC WordPress API 公式リファレンス
http://wpdocs.osdn.jp/XML-RPC_WordPress_API
4,146 views