2026年5月20日
2026年5月20日
REST APIで500エラーが出る場合の解決方法【WordPress REST API】
はじめに
WordPress REST API(/wp-json/)が500エラーを返すと、Gutenberg(ブロックエディター)が動かなくなったり、REST APIを使うプラグインが機能しなくなります。REST APIはWordPressの現代的な機能の根幹を担っているため、早期に解決することが重要です。
REST APIの500エラーが発生する状況
- Gutenbergエディターで「エラーが発生しました」と表示される
/wp-json/にアクセスすると500エラーが返る- REST APIを使うプラグイン(WooCommerce、Elementor等)が機能しない
- モバイルアプリ・外部サービスとの連携が動かない
まず確認:REST APIが応答するかテストする
ブラウザまたはcurlで以下のURLにアクセスします:
https://example.com/wp-json/
JSON形式のレスポンスが返ってくれば正常です。500エラーが返ってくる場合は原因を調査します。
解決方法①:プラグインの競合を確認する
REST APIに干渉するプラグインが最もよくある原因です。全プラグインを一時無効化してREST APIの動作を確認します:
管理画面 → プラグイン → 全て選択 → 一括操作「無効化」
復旧した場合は個別に有効化して原因プラグインを特定します。よくある原因プラグイン:
- セキュリティプラグイン(Wordfence・iThemes Security等)
- キャッシュプラグイン
- SEOプラグイン
解決方法②:パーマリンクのリセット
REST APIのルーティングが壊れている場合:
管理画面 → 設定 → パーマリンク設定 → 変更を保存
解決方法③:セキュリティプラグインのREST API設定を確認
Wordfence等のセキュリティプラグインがREST APIをブロックしている場合:
Wordfenceの場合:
Wordfence → ファイアウォール → 詳細ファイアウォールオプション
→ 「REST APIアクセス」を「許可」に設定
解決方法④:Nginxの設定にREST APIのルールを追加する
Nginx サーバーで /wp-json/ が適切にルーティングされていない場合:
location /wp-json/ {
try_files $uri $uri/ /index.php?$args;
}
解決方法⑤:wp-config.phpでREST APIを再確認
REST APIが明示的に無効化されている場合(functions.php等に記述がある場合):
// REST APIを無効化するコード(削除またはコメントアウト)
remove_action( 'init', 'rest_api_init' );
// または
add_filter( 'rest_authentication_errors', function( $result ) {
// この記述がREST APIをブロックしている可能性がある
return new WP_Error( 'rest_disabled', ... );
});
functions.php や子テーマの functions.php を確認してください。
注意事項
- REST APIを完全に無効化しているサイトでは、Gutenbergエディターも使えなくなります。セキュリティ目的で無効化する場合は代わりに認証を要求する設定を使ってください。
まとめ
REST APIの500エラーはプラグインの競合が最多原因です。全プラグイン無効化→原因特定の手順で確認し、セキュリティプラグインの設定も確認してください。
関連記事: