※この記事内の一部リンクにはアフィリエイトリンク(PR)が含まれます。
PHPのバージョンアップ後に、WordPressの検索機能や一覧表示で critical error が出てしまう不具合を修正した事例です。実際の案件名・サイト名・URL・業種・画面構成などは伏せていますが、約90名の応募があった中からお選びいただき、原因調査から修正・確認まで対応しました。
ご相談内容
ご相談いただいたのは、WordPressで作られたカスタム投稿まわりの一覧・検索ページの不具合でした。
カスタム投稿、カスタム分類、カスタムフィールドを組み合わせてデータを表示しているサイトで、PHPを8系へ上げたあと、特定の絞り込み条件を選ぶと一覧が表示されず、「このサイトで重大なエラーが発生しました」という状態になっていました。あわせて、ページの一部でレイアウト崩れも発生していました。
作業条件
今回の作業では、既存プラグインはバージョンアップしない、プラグイン本体や親テーマには手を入れない、という前提がありました。
そのため、既存データはそのまま残し、子テーマ側のテンプレート修正でどこまで解消できるかを確認しました。再入力が必要になるような作り替えではなく、今あるデータ構造に合わせて表示側を安全に整える方針です。
原因の切り分け
エラーログと該当テンプレートを確認したところ、検索条件の受け取り方に問題がありました。
具体的には、条件が未選択のときに渡ってくる値と、コード側で想定している値の型が合っていませんでした。PHP7系では表面化しにくかった処理でも、PHP8系では型の扱いが厳しくなり、条件によって fatal error につながることがあります。
また、デバッグモードで表示される Notice / Deprecated / Warning と、実際に画面表示を止めていた fatal error は分けて確認しました。古いプラグインや親テーマ由来の警告は残る場合がありますが、今回の主対象は「検索・一覧表示が止まる不具合」の解消です。
この記事の次に読みたい記事
近いテーマの記事を続けて読むと、サイト運営の改善ポイントをつなげて整理できます。
対応したこと
子テーマ内のテンプレートで、検索条件として受け取る値を事前に整えるよう修正しました。
- 絞り込み条件を安全な型に変換してから処理する
- 未選択時でもエラーにならないように初期値を整える
- 不要な検索条件を組み立てないようにする
- 既存データやカスタムフィールドの値は変更しない
- 後から見返せるように修正箇所へコメントを残す
これにより、単独条件での絞り込み、複数条件の組み合わせ、詳細ページへの遷移を含めて、表示が止まらない状態まで確認できました。
今回のような不具合で大事なこと
WordPressの不具合では、「画面に出ている警告を全部消すこと」と「実際に止まっている機能を復旧すること」は、同じ作業範囲とは限りません。
特に、古いプラグインをバージョンアップできない、親テーマを編集できない、本番サイトには直接触らない、といった条件がある場合は、どこまでを今回の作業で直し、どこからを別対応にするかを最初に切り分けることが重要です。
今回の対応範囲
既存プラグインや親テーマを直接編集せず、子テーマ側のテンプレート修正で検索・一覧表示まわりの critical error を解消しました。既存データは再入力せず、そのまま利用しています。
WordPressの不具合修正・機能改善をご相談いただけます
WordPressのPHPエラー、表示崩れ、テーマ調整、フォーム、検索機能、カスタム投稿、カスタムフィールド、プラグインまわりの不具合など、内容を確認したうえで対応範囲を整理します。
やり取りは、各サービス内のメッセージまたはトークルームのみで対応しています。Zoom、ビデオ通話、電話、外部連絡先でのやり取りは行っていません。文章で状況・URL・エラー内容を共有いただければ、そこから調査方針を組み立てます。
WordPressの不具合修正・機能改善
WordPress全般の不具合・改善相談に対応します
PHPエラー、表示崩れ、フォーム、検索機能、テーマ調整、プラグインまわりなど、現在の状況を確認して対応範囲を整理します。まずはエラー内容や困っている箇所をメッセージでお送りください。
対応は各サービス内メッセージのみです。外部連絡・電話・Zoom等には対応していません。

WordPressで困っていませんか?ここに気軽に相談してください