[XML-RPC による WordPress への投稿 関連記事]
今回は XML-RPC を使って、指定したアカウントで管理可能なサイト情報を取得する。そのXML-RPC メソッドは’wp.getUsersBlogs‘ であり、そのメソッドの使い方を調べたのでメモる。
※XML-RPC の基本的な使い方は “XML-RPCリクエストをWordPressに送信してレスポンスを受け取る“ 参照。
※サンプルでは”The Incutio XML-RPC Library for PHP” を使う。
パラメータ
* @param array $args
* Method parameters. Contains:
* - username
* - password
パラメータは配列で渡す。特に連想配列である必要はなく、第1要素がユーザ名、第2要素がパスワードとして判断される。
レスポンス
* @return array.
* Contains:
* - ‘isAdmin’
* - ‘url’
* - ‘blogid’
* - ‘blogName’
* - ‘xmlrpc’ – url of xmlrpc endpoint
連想配列で返ってくる。マルチサイトの場合は、そのアカウントでアクセス可能な全てのサイトを取得する。
- isAdmin : 管理者権限があるかどうか
- url : サイトのURL
- blogid :サイトごとにシステムが付与するID
- blogName : サイト名
- xmlrpc : XML-RPCリクエスト送信先
サンプル
<?php require_once("IXR_Library.php"); $server_url = 'http://localhost/WP/xmlrpc.php'; $client = new IXR_Client($server_url); header("Content-type: text/html; charset=utf-8"); if (!$client->query('wp.getUsersBlogs' , array('username','password'))) { die('Something went wrong - '.$client->getErrorCode().' : '.$client->getErrorMessage()); } else{ echo '<pre>'; var_dump($client->getResponse()); echo '</pre>'; }
- 2行目で”The Incutio XML-RPC Library for PHP” ライブラリを読み込む。
- 4行目でXML-RPCリクエスト送信先を指定する。
- 9行目で’wp.getUsersBlogs’ メソッドを実行するように指定する。
パラメータに配列でユーザ名、パスワードを指定する。 - 14行目でレスポンスを表示。
正常に処理が実行できたら、画面には次のような結果が表示される。
array(2) { [0]=> array(5) { ["isAdmin"]=> bool(true) ["url"]=> string(20) "http://localhost/WP/" ["blogid"]=> string(1) "1" ["blogName"]=> string(21) "サイト構築日記" ["xmlrpc"]=> string(30) "http://localhost/WP/xmlrpc.php" } [1]=> array(5) { ["isAdmin"]=> bool(true) ["url"]=> string(36) "http://localhost/WP/wordpress/" ["blogid"]=> string(1) "3" ["blogName"]=> string(37) "サイト構築日記(WordPress編)" ["xmlrpc"]=> string(46) "http://localhost/WP/wordpress/xmlrpc.php" } }
参考
[XML-RPC による WordPress への投稿 関連記事]