WordPressサイトをPHP8に移行した際にPHPのエラーが起きて、サイトが表示できなくなりました。
この記事では、PHP7⇒PHP8に移行した時のエラーの内容とデバッグ方法などをまとめています。
WordPressはPHP8に完全に対応していない
WordPress6.4からPHP8がPHP推奨バージョンになりました。
WordPressバージョン6.xでもWordPressはPHP8に完全に対応していません。ですので、通常の用途であれば無理にPHP8に変更する必要性はありません。
ただ、Wordpressコアの一部がPHP8に対応できていないだけでエラーが起きるわけではなく、PHP8に変更してもWordpressは正常に動きます。

PHP8移行時『このサイトで重大なエラーが発生しました。』の原因は?
WordPressサイトをPHP8に変更したら、『このサイトで重大なエラーが発生しました。』となるかもしれません。
その場合は、テーマかプラグインのどちらかがPHP8に対応していないため、PHPの致命的なエラーが起きています。
エラーメッセージが確認できないと原因がわかりませんので、以下の方法でデバッグします。
ダッシュボードにログインできる場合
デバッグモードにしてファイルでエラーメッセージを確認するのが確実ですが、まずは原因がテーマにあるのかプラグインにあるの切り分けます。
テーマファイルを公式テーマに変更してみる
テーマファイルに原因がある場合は、PHP8に対応済みのテーマに変更することでサイトが表示できるようになるか確認します。
新しい公式テーマであればPHP8への対応が行われているので、テーマに問題がある場合はテーマ変更することでサイトが表示できるようになります。
プラグインを一括で無効化してみる
プラグインに問題がある場合は、プラグインを最新版にバージョンアップすることで解消する可能性もあります。
それでもダメな場合は、プラグインを全て無効化して、ひとつづつ有効化していく作業で問題があるプラグインを特定することができます。
ダッシュボードにログインできない場合
wp-config.phpに以下の記述を追加することで、エラー情報がファイルに出力されるようになります。
ファイルの出力先はwp-conntent以下で、ファイル名はdebug.logとなります。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
debug.logの一番最後の行にFatal Errorがあると思いますので、『このサイトで重大なエラーが発生しました。』の原因個所になります。
自作テーマや非公式なテーマで保守が行われていない場合や、保守されていないプラグインなどで、PHP8に対応していない記述があるとFatal Errorになりやすいです。
PHP8に変更した時に起きたエラー
Deprecate curly brace syntax for accessing array elements and string offsets
私がPHP8に変更した時に発生したエラーは、『
Deprecate curly brace syntax for accessing array elements and string offsets』というもので、配列へのアクセスを波カッコで行っている部分でした。
発生個所はテーマファイルの中でした。テーマファイルが保守されていないので直接修正する必要がありました。
波カッコ({})を[]に変更したらエラーは無くなりました。

PHP8移行時に非推奨コードがレポートされた時の対応
まとめ
PHP8に移行することでPHPが高速化すると言われています。
その恩恵が受けられるのであればPHP8に移行してもいいかもしれません。
しかし、WordpressコアがPHP8へ完全対応していない点も考慮する必要があります。Wordpress自体がPHP8に完全に対応を謳っていないことから、プラグインもPHP8に対応していないものが結構あります。
もし、PHP8に変更したことで発生するエラーを自力で直せない場合や、修正箇所が多岐にわたる場合は、現時点で無理にPHP8に移行する必要はなく有志が修正するのを待った方がよいと思います。