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

最終更新日

wordpress eye catch

皆さんwordpressは使っていますか?
blogやらコーポレートサイトを作るときのデファクトスタンダードですよね。
このブログもwordpressで運用しています。
今回はblogの内容を外部から取得したかった際に、WP REST APIで取得できるはずのPATHでjsonが404 Not Foundになってしまった時のTIPSです。

非常に簡単な内容ですが、検索しても日本語であまりHITしなかったので記載しておきます。

目次

  1. 環境
  2. 前提
  3. 原因
  4. 対応方法
  5. まとめ

環境

  • 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?】


stmon19

遊びが一番 人生遊び 好きにまみれてます