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エラーはプラグインの競合が最多原因です。全プラグイン無効化→原因特定の手順で確認し、セキュリティプラグインの設定も確認してください。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ