Meow Apps

記事 · 2026年9月7日

WordPress の REST API が動かないときに見る場所(順番つき)

/wp-json を開くところから、パーマリンク、セキュリティ系プラグイン、キャッシュ、.htaccess、WAF、HTTPS まで。チャットボットや AI 系プラグインの「REST API error」は、ほぼこのどれかです。

REST API は、WordPress のデータをページを読み込み直さずに読み書きするための入口です。ブロックエディタも、AI Engine のチャットボットも、Media Cleaner のスキャンも、この入口を使っています。だから REST API が塞がると、症状は「プラグインが壊れた」ように見えます。実際に壊れているのは入口のほうです。

確認は上から順に。ほとんどの場合、三つ目までで終わります。

1. まず /wp-json を開く

ブラウザで https://あなたのサイト/wp-json/ を開いてください。

  • JSON らしき文字列がずらっと出る:REST API は生きています。手順 5 へ
  • 404 や、サイトのトップページが出る:パーマリンクの問題です。手順 2 へ
  • 403 や「アクセスが拒否されました」:何かがブロックしています。手順 3 と 4 へ
  • 真っ白、または 500:PHP 側のエラーです。エラーの原因を探す順番の記事で debug.log を出してください

Meow Apps のプラグインは、この一覧に自分のエンドポイントを載せません。使われるときにだけコードを読み込む作りなので、載っていなくても正常です。

2. パーマリンクを保存し直す

設定 → パーマリンク を開いて、「基本」以外(普通は「投稿名」)を選び、何も変えていなくても「変更を保存」を押します。これで .htaccess の書き換えルールが作り直されます。REST API が 404 になる原因の第一位はこれです。

3. セキュリティ系プラグインを一時的に止める

REST API を「攻撃面」とみなして丸ごと塞ぐ設定を持つプラグインがあります。iThemes Security(Solid Security)の「REST API を制限」、Wordfence の一部のルール、WP Cerber などです。設定の中に「REST API」「XML-RPC」「JSON」という項目があれば、いったん無効にして手順 1 をやり直してください。

塞ぐのが正解なケースはほとんどありません。REST API は WordPress 本体の一部で、常にセキュリティの目が入っています。プラグインごとに独自の入口を作るほうが、よほど危ういです。

4. WAF と Cloudflare のルール

サーバー側の WAF(ホスティングの「ボット対策」や Cloudflare の Firewall Rules、Bot Fight Mode)が /wp-json/ へのリクエストを弾いていることがあります。特徴は、管理画面から使うと動くのに、サイトの表側(チャットボットなど)からだと 403 になること。Cloudflare なら Security → Events で、弾かれたリクエストが見えます。/wp-json/ を許可するルールを一つ足せば直ります。

5. キャッシュ

REST API のレスポンスはキャッシュしてはいけません。W3 Total Cache のオブジェクトキャッシュで壊れた例が特に多く、設定から Object Cache を一度空にすると直ります。ページキャッシュ系のプラグインやホスティングのキャッシュでも、除外パスに /wp-json/ を入れておくと安全です。

6. HTTPS とアプリケーションパスワード

外部の AI アシスタント(Claude や ChatGPT)や MCP から WordPress につなぐとき、認証にはアプリケーションパスワードを使います。これは HTTPS でないと WordPress が発行を拒否します。「Application Passwords require HTTPS」というメッセージが出たら、原因はプラグインではなく、サイトが http のまま、あるいはリバースプロキシの裏で WordPress が http だと思い込んでいることです。後者は wp-config.php に次の一行で直ります。

$_SERVER['HTTPS'] = 'on';

7. コードで無効化されていないか

昔の高速化記事に、こう書くと軽くなると載っていたことがあります。

add_filter( 'rest_enabled', '__return_false' );
add_filter( 'rest_jsonp_enabled', '__return_false' );

テーマの functions.php やコードスニペット系プラグインの中にこれがあれば、消してください。今の WordPress では、これを入れると管理画面そのものが正しく動きません。

8. 「有効なのに、途中で壊れる」

/wp-json/ は出るのに、プラグインの操作だけが失敗する。この場合は、サーバー側でエラーが起きているか、リクエストが途中で拒否されています。

  • エラーか:debug.log に Fatal が残ります(手順 1 の記事)
  • 通信か:Chrome で F12 → Network タブを開いて操作をやり直し、赤くなった行をクリック。ステータスが 403 なら手順 3 と 4、504 や timeout ならホスティングの実行時間の制限です

AI Engine で「REST API error」が出るとき

AI Engine のチャットボットは、返事を取りに行くたびに REST API を呼びます。「REST API error」「Failed to fetch」と出るなら、上の 3 と 4 と 5 が原因のほぼ全てです。特にサイトの表側でだけ失敗するなら、4 の WAF を疑ってください。プラグインの設定をいじる前に、まず /wp-json/ を開く。それだけで、サポートに書く内容がはっきりします 🙂

この記事に関連するプラグイン

AI Engine

コードを書かずに、自分のサイトの内容に答えるチャットボットを設置できます。