記事 · 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
コードを書かずに、自分のサイトの内容に答えるチャットボットを設置できます。