このサイトのレンタルサーバーで使用している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運用も歴史だけは長くなってしまい、レガシーな設定も残ってしまっていると思う。そんな話。