WordPress4.7以降から標準機能として搭載されたWP REST API、指定のURLでアクセスすることによって、投稿の一覧がJSON形式で取得できるようになったりする便利機能です。
参考:https://ja.wp-api.org/
指定のURLって何?
https://サイトのURL/wp-json/wp/v2/posts
上記のURLでアクセスすると投稿一覧のJSON形式が取得できます。
今回、ここでつまづいてしまいました(涙
さくらVPSの環境にWordPress5.5をインストールし、設定を完了させ、目的の投稿一覧をJSON形式で取得しようとしました。
https://サイトのURL/wp-json/wp/v2/posts
上記URLでアクセスしたところ不思議なことにサイトのトップページにリダイレクトされてしまいます。
???と思ったので、まずは.htaccessの中身を確認しました。
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
特に問題はなさそうです。
下記のURLで表示できるとの情報をゲットしたので早速アクセス。
https://サイトのURL?rest_route=%2Fwp%2Fv2
表示されました!
ということは、WP REST APIは正常に動作していることがわかりました。
他にリダイレクトに関係しそうな項目ということで、いろいろ調査をしていくと
Word Pressのパーマリンクを設定変更しないとデフォルトではトップページにリダイレクトされてしまい、JSON形式で表示されないとか・・・・
知りませんでした!!!
ということで設定→パーマリンク設定から基本となっているパーマリンクから他のパーマリンクに変更して保存し、下記URLにアクセスしたところ無事に表示されることを確認できました♪
取得方法の例
投稿データを全件取得
https://サイトのURL/wp-json/wp/v2/posts/
投稿の数を指定して取得
https://サイトのURL/wp-json/wp/v2/posts/?per_page=2
投稿IDを指定して取得
https://サイトのURL/wp-json/wp/v2/posts/投稿のID/
例
投稿のIDが「1」の場合
https://サイトのURL/wp-json/wp/v2/posts/1/
投稿を検索して取得
https://サイトのURL/wp-json/wp/v2/posts/?search=wordpress