wordpressでWP REST API使用時に404 Not Foundが出たときの対応

皆さんwordpressは使っていますか?
blogやらコーポレートサイトを作るときのデファクトスタンダードですよね。
このブログもwordpressで運用しています。
今回はblogの内容を外部から取得したかった際に、WP REST APIで取得できるはずのPATHでjsonが404 Not Foundになってしまった時のTIPSです。
非常に簡単な内容ですが、検索しても日本語であまりHITしなかったので記載しておきます。
目次
- 環境
- 前提
- 原因
- 対応方法
- まとめ
環境
- wordpress: 5.7
※ wordpress 4.7以降ならデフォルトでWP REST APIがwordpressに組み込まれています。
4.7未満の場合はWP REST APIプラグインをインストールすると良さそうです
- パーマリンクの設定
- 設定 > パーマリンク設定 > 共通設定 : 「基本」
前提
いろいろな資料では下記のようなURLでJSONが取得できると記載されていますが、自分の環境ではこのURLだと404 Not Foundがでてしまいました。
<あなたのWordPressのトップページ>/wp-json/wp/v2/posts
原因
環境のところであげた、パーマリンク設定が問題のようです。
「基本」のままだと動きませんでした。
単純に設定を変えればいいだけでしょうが、パーマリンクの設定はサイト全体に影響を及ぼすので、本番運用中に安易に設定変更したくありませんでした。
そこで以下の方法で取得しています。
対応方法
以下のURLパラメータを利用して取得します。
<あなたのWordPressのトップページ>/?rest_route=/wp/v2/posts
他にも対応方法がありそうですが、自分はこちらのURLで取得するのがwordpress自体の設定変更をする必要がなく簡単でした。
まとめ
その他の参考URLを載せておきます。
WP REST APIのリファレンス
wordpress.stackexchange.com 【Can I use REST-API on plain permalink format?】