WordPressの「WP REST API」を使ってカテゴリーの情報をJSONで取得する方法

WordPressで作ったWebサイトのカテゴリーの情報をJSONで取得する方法について勉強しました。もし興味のある方がいらっしゃいましたらご参考ください。

ちなみに、投稿の情報をJSONで取得する方法についても勉強して、以下のページに書いています。あわせてご参考いただけますと嬉しいです。

※以下「WP REST API」プラグインはインストール&有効化済みとして話を進めています。

WordPressの「WP REST API」を使ってカテゴリーの情報をJSONで取得する方法

例えば、WebサイトのURLが以下だったとします。

https://local.imamura.biz/blog/

このURLのカテゴリーの情報をJSONで取得するには、以下のURLにアクセスするとできます。

https://local.imamura.biz/blog/wp-json/wp/v2/categories

ポイントはURLに「wp-json/wp/v2/categories」を付与しているところですね。

取得したJSON(一例です)

カテゴリーのIDや抜粋、カテゴリーのアーカイブページのURLなど取得できました。

[{"id":24,"count":1,"description":"","link":"https:\/\/local.imamura.biz\/blog\/category\/web\/dev-plugin","name":"devplugin","slug":"dev-plugin","taxonomy":"category","parent":18,"meta":{},"_links":{"self":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories\/24"}],"collection":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/taxonomies\/category"}],"up":[{"embeddable":true,"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories\/18"}],"wp:post_type":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/posts?categories=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":19,"count":1,"description":"\u8aac\u660e\u8aac\u660e","link":"https:\/\/local.imamura.biz\/blog\/category\/facebook","name":"facebook","slug":"facebook","taxonomy":"category","parent":0,"meta":{},"_links":{"self":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories\/19"}],"collection":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/posts?categories=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":23,"count":1,"description":"","link":"https:\/\/local.imamura.biz\/blog\/category\/web\/jimdo"
...以下省略

応用:カテゴリーに所属している投稿が多い順に取得する

URLクエリパラメーターを付与してあげると、取得できる条件を変更できます。

例えば、カテゴリーに所属している投稿が多い順に取得するには以下のURLにアクセスするとできます。

https://local.imamura.biz/blog/wp-json/wp/v2/categories?orderby=count&order=desc

ポイントはURLに「wp-json/wp/v2/categories」を付与して、さらにURLクエリパラメーター「orderby」と「order」を付与しているところですね。

取得したJSON(一例です)

[{"id":18,"count":4,"description":"","link":"https:\/\/local.imamura.biz\/blog\/category\/web","name":"Web\u5168\u822c","slug":"web","taxonomy":"category","parent":0,"meta":{},"_links":{"self":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories\/18"}],"collection":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/posts?categories=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":1,"count":2,"description":"","link":"https:\/\/local.imamura.biz\/blog\/category\/museum","name":"\u7f8e\u8853\u9928","slug":"museum","taxonomy":"category","parent":0,"meta":{},"_links":{"self":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories\/1"}],"collection":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/local.imamura.biz\/blog\/wp-json\/wp\/v2\/posts?categories=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":2,"count":2,"description":
...以下省略

まとめ

「カテゴリーの一覧」という使い方ができるJSONで、とても便利だと思います。

このページに書いてあることはほんの一部で、取得できるJSONや付与できるURLクエリパラメーターは他にもあります。詳しくはリファレンスをご参考ください。

著者:bouya Imamura