2026年5月20日

2026年5月20日

特定のページだけWordPress500エラーが出る場合の解決方法

はじめに

サイト全体ではなく「特定のページだけ」500エラーになる場合、そのページ固有の何か(テンプレートファイル・ショートコード・カスタムフィールド・メタデータ)が原因です。全体のプラグインやテーマは問題がないため、ページ固有の要素を一つずつ確認します。

特定ページだけ500エラーになる主な原因

| 原因 | 確認方法 |

|------|---------|

| ショートコードのエラー | ページコンテンツから削除してテスト |

| カスタムページテンプレートのエラー | テンプレートをデフォルトに変更 |

| カスタムフィールド・ACFのデータ問題 | フィールドを削除してテスト |

| ページビルダーのブロックエラー | ビルダーを無効化してテスト |

| 投稿IDやスラッグが問題 | URLを変更してテスト |

ステップ1:エラーログで原因ファイルを特定する

// wp-config.php に追加
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

問題のページにアクセスし、wp-content/debug.log に記録されるエラーのファイル名・行番号を確認します。

ステップ2:テンプレートを確認する

テーマのカスタムテンプレートが適用されているページの場合:

1. 管理画面 → 問題のページを編集

2. 「ページ属性」→「テンプレート」を「デフォルトテンプレート」に変更して保存

3. 500エラーが解消されたら → カスタムテンプレートのPHPコードを確認

カスタムテンプレートファイルに構文エラーや存在しない関数の呼び出しがないか確認します。

ステップ3:ショートコードを確認する

ページコンテンツにあるショートコードを一時的に削除してテストします:

[custom_shortcode attr="value"]  ← これが原因の場合がある

ショートコードを削除してページが表示されるようになった場合、そのショートコードを提供しているプラグインかfunctions.phpの関数にエラーがあります。

ステップ4:ページビルダーを確認する

ElementorやBeaver Builderなどのページビルダーが適用されているページは、ビルダーのブロック設定にPHPエラーを引き起こす設定がある場合があります:

1. ページビルダーを無効化するか、ページのコンテンツを空にしてテスト

2. どのブロックが原因かを二分探索で特定

ステップ5:データベースのメタデータを確認する

特定の投稿IDに問題があるpostmetaデータが保存されている可能性があります:

-- phpMyAdminで問題の投稿のメタデータを確認
SELECT * FROM wp_postmeta WHERE post_id = 123;

不正なシリアライズデータがある場合、削除または修正が必要です。

ステップ6:WP-CLIで問題の投稿を確認する

# 特定の投稿IDのメタデータを確認
wp post meta list 123

# 投稿のスラッグを変更してキャッシュをクリア
wp post update 123 --post_name=new-slug
wp cache flush

注意事項

  • デバッグ中は WP_DEBUG_DISPLAYfalse に保ってください。エラーが公開されるとセキュリティリスクになります。

まとめ

特定ページだけの500エラーはデバッグログでエラーファイルを特定し、テンプレート→ショートコード→ページビルダー→DBメタデータの順で確認します。

関連記事:

お気軽にご相談ください

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