WordPressの管理画面からPHPのバージョンが低いぞとお叱りを受けたのでアップデートします。
しかし私は5年前にPHPのバージョンアップで死にかけた事があります。
これを軽いノリで行うととんでもない事になるのは体で覚えていますので、しっかりと準備をし、そして深夜に行うようにします。前回は仕事中にやってしまい地獄を経験しましたからね。
今回の闘いの記録
完璧な事前準備
Googleの生成AIGeminiに聞いて事前の準備手段を確認します。それによるとやる事は3つです。
- プラグインを最新化する
- プラグインのPHP対応状況をチェックする
- バックアップをとる
プラグインの最新化

とりあえず最新化しました。
プラグインのPHP対応状況のチェック

チェックしました。
PHP 8.0でエラーが出ているプラグインがひとつ存在したのですが、深夜だったためかなんか気にせずスルーしてしまいました。何のためにこの行程をとったのか謎です。
バックアップをとる

今回使ったUpdraft PlusというプラグインはGeminiに紹介されたものです。
生成AIの言いなりになるのもなんか癪だったので、「もともと入れていたWP-DBManagerというバックアッププラグインではダメなのか」と聞いてみたところ、
「不十分である。それはデータベースしかバックアップしないからである。Updraft PlusであればPHPや画像ファイルなど、あらゆるデータをバックアップできる。しかも復旧機能もある。無料版でも十分の機能を有する。」
と畳み掛けられたので、このプラグインを入れてバックアップを実行する事にしました。結果、生成AIの言いなりになっています。
データベース、プラグイン、テーマ、アップロードファイル、その他の5種類のバックアップをとり、念の為ローカルにも保存しておきました。
これで(生成AIが言う)事前準備を整えました。
PHPバージョンアップを実行する
ではロリポップの管理画面からPHPのバージョンアップを実行します。

5年前とほぼ同じ警告文を改めて読み込みます。今回は特に注意すべき事は無いように思われました。ちょっとだけビビリながらPHPのバージョンアップを行います。

実行しました。反映に5-10分かかるとの事で、本日あった参院選の結果でも眺めながら時間を潰し、Wordpressの管理画面にアクセスしてみました。

ああー、そうですか。
前回(5.x→7.x)に比べると大げさなアップデートでは無いのですんなり行くんちゃうかと心のどこかで思っていましたが、やはりそうですか。はい、分かりました。
復旧作業〜すごいぞGemini!!
5年前はそれらしき単語でググってヒットする解説記事を片っ端から血眼で見まくるという事をやりましたが、2025年はGeminiが全部が教えてくれました。これ以降で説明する解決方法は全てGeminiの言いなりに従っただけです。これはさすがに世界が変わった感があります。
まずデバッグモードを有効化する
wp-config.php にGeminiが指示するコードを加えて、デバッグモードを有効化します。
なおこのあたりの作業は全てロリポップFTP(ブラウザ)上で作業しました。
エラー内容を特定する
debug.log というファイルが生成されるのでその内容を見ます。
そしたら”Fatal error”から始まる行があるのでその内容をそのままGeminiに「なんやこれは」と聞きます。
Geminiによると「プラグイン由来かテーマ由来のウェジエットがPHP 8.xの新しいルールに対応できていない」とのこと。
ついでに「このエラーはPHPバージョンアップの際によくある事だ」とも付け加えられており、なんだか生成AIに慰められている気がしてきました。
プラグインをひとつづつ無効化する
デバッグログからは直接どのウィジェットが問題なのかは分からないので絞り込みをしていこう、という提案を受けました。Geminiから。
だいたいこういうのはプラグインが悪さをするものらしいので、有効化しているプラグインをひとつづつ無効化していって復旧したらそのプラグインが原因と特定できます。
プラグインひとつひとつのフォルダ名を変更する事で強制的に無効化する事ができるらしいので、ロリポップFTP上で作業していきます。例えば、/akismet/ を /akismet-old/ などと変えていけば良いのです。
犯人の特定
こいつでした。

My Category Orderという記事カテゴリーの順序の表示を指定できるプラグインです。こいつを無効化することで、

トップ画面が復旧しました。やったー!
…と思って記事詳細ページを開くと

真っ白でした。
テンプレートPHPの記述の修正
こんな事あるんかいなと思いつつ、Gemini様に事象を報告したところ
「もう一度エラーログを見てみるのが良い」
との事なので言われるがままに debug.log を開いてまた Fatal error を探したところ、ありました。header.php に PHP 8.x で厳格化した文字列の扱いに抵触している箇所があるとのこと。エラーになっている行もハッキリしているので「原因が明確なので、修正も簡単です」と私を慰めるような事を言ってくれます。人間より優れている気がしてきます。
該当するPHPのコードをそのまま貼り付けたら一瞬で解決方法まで言ってくれるので、言われるがままにPHPの記述を修正したところ、

バッチリ解消しました。これにて一件落着です。
ただしMy Category Orderを無効化したためカテゴリーの表示順が意図通りになっていないという意味では完全な復旧はしていないのですが、「まぁ誰もそんなこと気にせえへんやろ」と解釈する事で復旧完了という事にしています。これについてはおいおい考えます。
表示スピードの向上
PHPのバージョンアップはセキュリティ面で行う事が強調されがちですが、パフォーマンスの向上も無視できません。今回のアップデートによる影響を PageSpeed Insightsで調べてみました。
まずモバイルです。

パフォーマンスが上がりました。これは嬉しい。

何も代わりませんでした。PCはもともとなんかスコアが良いのでまぁ良しとします。
教訓
という事で5年ぶりにPHPのバージョンアップと闘いました。パフォーマンスも上がるしもう少しこまめにメンテナンスした方が良いんだろうなとは思いつつ、自分の正確上、次もまた5年後になる気もします。
あと前回は復旧まで5時間かかりましたが今回は1.5時間で終わりました。その背景に生成AIがあります。今回、1度もググる事なく復旧ができてしまいました。末恐ろしい。
今回で得られた教訓は以下の通りです。
- できるだけプラグインを入れない
- 無効化したプラグインは適宜削除する
- 生成AIに聞けばなんとかなる
5年後には生成AI以上のソリューションが生まれているのでしょうか。もう想像もできませんが、そういう世界線であればもう勝手にPHPをバージョンアップして勝手にエラーFIXしておいてほしいと思います。

