XML-RPC WordPress API-Categories-

 XML-RPC WordPress APIを使うとHTMLのPOSTによりWordPressと通信をすることができます。ここでは、XML-RPCによりWordPressのカテゴリ情報のやりとりをする方法を紹介します。

wp.getCategories-カテゴリ一覧の取得-

 wp.getCategoriesによりカテゴリ一覧を取得します。以下のようにして命令を送ります。

<methodCall>
	<methodName>wp.getCategories</methodName>
	<params>
		<param><value><int>blogid</int></value></param>
		<param><value><string>username</string></value></param>
		<param><value><string>password</string></value></param>
	</params>
</methodCall>

ここでの入力パラメタは以下の通りです。

  1. blogid:ブログID、通常は1です。
  2. username:ログインID
  3. password:ログインパスワード

 命令に成功すると以下のような情報が返ってきます。

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse><params>
	<param><value>
		<array><data>
			<value><struct>
				<member><name>categoryId</name><value><string>12</string></value></member>
				<member><name>parentId</name><value><string>0</string></value></member>
				<member><name>description</name><value><string>カテゴリ1</string></value></member>
				<member><name>categoryDescription</name><value><string>カテゴリ1の説明</string></value></member>
				<member><name>categoryName</name><value><string>カテゴリ1</string></value></member>
				<member><name>htmlUrl</name><value><string>http://localhost/wordpress/category/others/</string></value></member>
				<member><name>rssUrl</name><value><string>http://localhost/wordpress/category/others/feed/</string></value></member>
			</struct></value>
			<value><struct>
				<member><name>categoryId</name><value><string>3</string></value></member>
				<member><name>parentId</name><value><string>0</string></value></member>
				<member><name>description</name><value><string>カテゴリ2</string></value></member>
				<member><name>categoryDescription</name><value><string>カテゴリ2の説明</string></value></member>
				<member><name>categoryName</name><value><string>カテゴリ2</string></value></member>
				<member><name>htmlUrl</name><value><string>http://localhost/wordpress/category/tyuugaku/</string></value></member>
				<member><name>rssUrl</name><value><string>http://localhost/wordpress/category/tyuugaku/feed/</string></value></member>
			</struct></value>
		</data></array>
	</value></param>
</params></methodResponse>

array形式でカテゴリ情報が羅列されます。そして、structにメタフィールド情報が入っています。メタフィールドの意味は以下の通りです。

メタフィールド データ型 意味
categoryId string カテゴリID
parentId string 親のカテゴリID。親がないなら0。
categoryName string カテゴリ名
categoryDescription string カテゴリの説明文
description string
htmlUrl string HTMLのURL
rssUrl string RSSのURL

wp.suggestCategories

 カテゴリの中からある文字を含むカテゴリの情報を取得することができます。

<methodCall>
	<methodName>wp.suggestCategories</methodName>
	<params>
		<param><value><int>blogid</int></value></param>
		<param><value><string>username</string></value></param>
		<param><value><string>password</string></value></param>
		<param><value><string>category</string></value></param>
		<param><value><int>max_results</int></value></param>
	</params>
</methodCall>

入力値の意味は以下の通りです。

  1. blogid:ブログID、通常は1です。
  2. username:ログインID
  3. password:ログインパスワード
  4. category:カテゴリの頭文字列
  5. max_results:結果表示の最大数

実行に成功すると以下のような結果が返ってきます。

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse><params>
	<param><value>
		<array><data>
			<value><struct>
				<member><name>category_id</name><value><string>1</string></value></member>
				<member><name>category_name</name><value><string>カテゴリ1</string></value></member>
			</struct></value>
			<value><struct>
				<member><name>category_id</name><value><string>12</string></value></member>
				<member><name>category_name</name><value><string>カテゴリ2</string></value></member>
			</struct></value>
		</data></array>
	</value></param>
</params></methodResponse>

arrayの中にカテゴリのデータがstruct形式で入ってきます。メタフィールドの意味は以下の通りです。

メタフィールド データ型 意味
category_id string カテゴリID
category_name string カテゴリ名

wp.newCategory-カテゴリの追加-

 wp.newCategoryによりカテゴリを追加します。以下のように命令を送ります。

<methodCall>
	<methodName>wp.newCategory</methodName>
	<params>
		<param><value><int>blogid</int></value></param>
		<param><value><string>username</string></value></param>
		<param><value><string>password</string></value></param>
		<param>
			<value>
			<struct>
				<member><name>name</name><value><string>新規カテゴリ名</string></value></member>
				<member><name>description</name><value><string>新規のカテゴリです。</string></value></member>
				<member><name>parent_id</name><value><int>0</int></value></member>
				<member><name>slug</name><value><string>newcategory</string></value></member>
			</struct>
			</value>
		</param>
	</params>
</methodCall>

入力パラメタの意味は以下の通りです。

  1. blogid:ブログID、通常は1です。
  2. username:ログインID
  3. password:ログインパスワード

最後のstructでは追加するカテゴリの設定をします。メタフィールドの意味は以下の通りです。

メタフィールド データ型 意味
name string カテゴリ名
description string カテゴリの説明文
parent_id int 親カテゴリID
slug string スラッグ

成功するとカテゴリID(int)を返します。

wp.deleteCategory-カテゴリの消去-

 wp.deleteCategoryによりカテゴリを消去します。命令は以下の通りです。

<methodCall>
	<methodName>wp.deleteCategory</methodName>
	<params>
		<param><value><int>blogid</int></value></param>
		<param><value><string>username</string></value></param>
		<param><value><string>password</string></value></param>
		<param><value><int>category_id</int></value></param>
	</params>
</methodCall>

入力値は以下の通りです。

  1. blogid:ブログID、通常は1です。
  2. username:ログインID
  3. password:ログインパスワード
  4. category_id:消去するカテゴリのID

成功するとtrueを返します。

著者:安井 真人(やすい まさと)