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_DISPLAYをfalseに保ってください。エラーが公開されるとセキュリティリスクになります。
まとめ
特定ページだけの500エラーはデバッグログでエラーファイルを特定し、テンプレート→ショートコード→ページビルダー→DBメタデータの順で確認します。
関連記事: