「WordPressで作ったWebサイトの情報をJSONで取得したい」ということがあったので、いい機会なので「WP REST API」について勉強しています。
もし興味のある方がいらっしゃいましたら、ご参考ください。
WP REST APIを使えるように準備しよう
以前は「WP REST API」を使えるように WP REST APIを使うためのWordPressプラグインをインストール&有効化する必要がありました。
WordPress4.7以降のバージョンでは、WP REST APIの機能が標準で実装されています。つまり、プラグインのインストールはいらなくなりました。
WP REST APIで投稿の情報を取得する
僕個人的には、あんまり難しいところから始めるのは得意ではないので、まずは実用的でわかりやすいところで「投稿の情報を取得」しました。
例えば、WebサイトのURLが以下だったとします。
https://local.imamura.biz/blog/
このURLの投稿の情報をJSONで取得するには、以下のURLにアクセスするとできます。公開済みの投稿を10件取得できます。
投稿の情報をJSONデータで10件取得する
https://local.imamura.biz/blog/wp-json/wp/v2/posts
ポイントは、URLに「/wp-json/wp/v2/posts」を付与してアクセスする、ってことですね。
取得できるJSON(一例です)
[{"id":133,"date":"2016-10-15T10:19:28","date_gmt":"2016-10-15T01:19:28","guid":{"rendered":"https:\/\/local.imamura.biz\/blog\/?p=133"},"modified":"2016-10-16T13:23:28","modified_gmt":"2016-10-16T04:23:28","slug":"card%e3%82%ab%e3%83%ab%e3%83%bc%e3%82%bb%e3%83%ab","type":"post","link":"https:\/\/local.imamura.biz\/blog\/133","title":{"rendered":"card\u30ab\u30eb\u30fc\u30bb\u30eb"},"content":{"rendered":"<div class=\"card\"><p><a class=\"cf\" href=\"https:\/\/local.imamura.biz\/blog\/1\"><img src=\"https:\/\/local.imamura.biz\/blog\/wp-content\/themes\/genius8\/images\/default_medium.png\"><span class=\"text\">Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!<span class=\"button\">\u3053\u306e\u30da\u30fc\u30b8\u3092\u307f\u308b<\/span><\/span><\/a><\/p><\/div>\n<div class=\"card multiple\"><p><a class=\"cf\" href=\"https:\/\/local.imamura.biz\/blog\/1\"><img src=\"https:\/\/local.imamura.biz\/blog\/wp-content\/themes\/genius8\/images\/default_medium.png\"><span class=\"text\">Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!Hello world!<span class=\"button\">\u3053\u306e\u30da\u30fc\u30b8\u3092\u307f\u308b<\/span><\/span><\/a><\/p><p> ...以下省略
応用:取得する件数の指定もできるよ
URLクエリパラメーターを指定すると、デフォルトで取得できる条件を変えることもできます。例えば、取得する件数を「5件」にしたい場合は「per_page=5」を付与してあげるとOKです。
https://local.imamura.biz/blog/wp-json/wp/v2/posts?per_page=5
指定できるパラメーターはもっとあるので、詳しくはリファレンスをご参考ください。
取得したJSONは「投稿の一覧」として利用するのもいいですね。
WP REST APIで特定の投稿の情報を1件だけ取得する
今度は複数の投稿ではなく「特定の投稿の情報を1件だけ取得」します。
例えば、投稿ID「122」の情報をJSONで取得するには以下のURLにアクセスするとできます。
https://local.imamura.biz/blog/wp-json/wp/v2/posts/122
ポイントは、URLに「/wp-json/wp/v2/posts」を付与して、さらに投稿ID「/122」を付与することですね。
取得できるJSON(一例です)
{"id":122,"date":"2016-10-04T12:15:12","date_gmt":"2016-10-04T03:15:12","guid":{"rendered":"https:\/\/local.imamura.biz\/blog\/?p=122"},"modified":"2016-10-14T21:39:26","modified_gmt":"2016-10-14T12:39:26","slug":"%e3%83%aa%e3%82%b9%e3%83%88%e3%83%9e%e3%83%bc%e3%82%ab%e3%83%bc","type":"post","link":"https:\/\/local.imamura.biz\/blog\/122","title":{"rendered":"\u30ea\u30b9\u30c8\u30de\u30fc\u30ab\u30fc"},"content":{"rendered":"<ul>\n<li>\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8<\/li>\n<li>\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u30b9\u30c8\u30ea\u ...以下省略
まとめ
今回は僕の習熟度の関係で、わりととっつきやすかった投稿を取得する方法ついて書きました。取得したJSONを加工して、アプリを作るってのもいいですよね〜。
WP REST APIを使うとできることはもっとあります。気になる方はリファレンスをご参考ください。
このページを共有する