このサイトのレンタルサーバーで使用しているPHPのバージョンを7.4から8系にアップデートしようとすると、WordPressの管理画面が真っ白になってしまうトラブルに直面していた。
この手の問題の場合、テーマやプラグインの互換性の問題が疑われることが多いが、今回はPHPのバージョンを変えたことによって起きているので、PHPまわりに原因があることは間違いない。phpinfoを表示させてみてみると、バージョン8.1にしてもPHP自体は動作している模様。つまりスクリプトに何か不具合があるということか。
WordPressをホスティングしているディレクトリにあるerror_logを確認してみると、wp_config.phpでエラーが起きていることがわかった。
PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported
原因は「波括弧」だった。せっかくなのでChatGPTに解説してもらおう。
{}
を使った配列や文字列へのアクセスが、PHP 8.0以降では構文エラーとなるため、PHPが実行を停止しています。PHP 7.4から
{}
記法は非推奨 (deprecated) 扱いとなり、PHP 8.0からは完全に使用不可になりました。WordPress推奨のPHPバージョンは、現時点(2025年1月現在)で少なくとも7.4以上または8.0以上を想定しており、このエラーはPHPバージョンを上げた際によく起こる事象です。
なるほど。ということで、{ }の代わりに[ ]を使うようにして、エラーとなっていた行を修正。無事にPHP 8.1で動作するようになった。
このサイトのレンタルサーバーやWordPress運用も歴史だけは長くなってしまい、レガシーな設定も残ってしまっていると思う。そんな話。