WordPressのPHPをバージョンアップしたら画面が真っ白に。犯人はプラグインではなく、テーマファイルだった

先日、人様が作ったWordPressサイトのセキュリティアップデートの仕事を承りました。

結論から言えば、PHPを7.4から8.5に上げたら画面が真っ白になり、原因はプラグインではなくテーマファイルでした。

WordPress本体のアップデートは問題なく終わっていました。しかし、PHPのバージョンアップで致命的なエラーが出てしまったんです。

今回は、そのときに何を疑い、どう切り分け、どう直したかを、後で自分が見返すためのメモも兼ねてまとめます。

まず、作業の前に何をしたのか

他人が作ったサイトを触るときは、最初に「戻せる状態」を作ります。

今回やったのは、次の2つです。

  1. FTPで、サイトのファイルを丸ごとダウンロードする
  2. phpMyAdminで、データベースのバックアップを取る

どちらも地味な作業です。しかし、PHPのバージョンを上げるときは、画面が真っ白になる可能性があります。そうなってから「バックアップを取っておけばよかった」では遅いんですよね。

ちなみに、先日は別のサイトで、Contact Form 7を最新版にしたら白紙になる、ということもありました。そのときはすぐ戻せる体制にしてあったので、影響はありませんでした。今は自動更新を止めています。

何が起きたのか

流れはこうです。

  1. WordPress本体をアップデートする(問題なし)
  2. サーバーのPHPを7.4から8.5にバージョンアップする
  3. サイトを開くと、画面が真っ白になる

「画面が白い」だけでは、何が悪いのか分かりません。ここから原因探しです。

なぜ、プラグインを疑ってしまうのか

こういうとき、まず疑うのはプラグインです。

昔の僕なら、プラグインを一個ずつ外して、そのたびに動作確認をしていたと思います。時間がかかるうえ、原因が見つかる保証もありません。

実は今回も、頭の中ではプラグインを疑っていました。

しかし、結果は違いました。犯人はテーマファイルです。PHP8に対応していなかったんです。

プラグインばかり疑いがちですが、盲点はテーマでした。

今回は、AIにコードを調べさせました

今回は、一個ずつ外す代わりに、AIにコードを調べさせました。

やったことはシンプルです。

  1. AIに、サイトのコードを読ませて、PHP8で動かない箇所を探してもらう
  2. AIが見つけた不具合と、直し方の提案を見る
  3. 内容を確認して、僕が承認する

承認するのは僕です。AIの提案をそのまま入れるのではなく、何をどう変えるのかを確認してから進めます。

その結果、テーマファイルのPHP8に対応していない部分が見つかり、該当箇所を修正して、無事にアップデートできました。

バージョンアップの作業自体は、1時間ほどでした。

他人が作ったWordPressをPHP8に上げる前に確認する3つのこと

今回の経験から、次の3つは先に確認したいと思いました。

確認すること1:戻せる状態を作ってから触る

FTPでファイルを、phpMyAdminでデータベースを、それぞれバックアップします。

作業が終わるまで、このバックアップは消さないでください。

確認すること2:本体・プラグイン・テーマを分けて考える

エラーが出たときに、プラグインだけを疑わないことです。

  • WordPress本体は動いているか
  • プラグインは対応しているか
  • テーマは対応しているか

この3つを切り分けて見ます。今回は、本体もプラグインも問題がなく、テーマでした。

確認すること3:テーマがPHP8に対応しているか

他人が作ったテーマは、いつ、誰が、どんな書き方で作ったのかが分からないことがあります。

自作のテーマや、昔のテーマをそのまま使っているサイトは、PHPのバージョンを上げた瞬間に動かなくなることがあります。今回は7.4から8.5へ、一気に大きく上げたので、なおさらでした。

「プラグインは最新だから大丈夫」と思っていても、テーマは別です。

更新を止めたままのサイトは、あとで重くなる

もうひとつ、思ったことがあります。

更新を止めたままのサイトは、いざ上げるときに作業が重くなります。

PHPも、WordPressも、プラグインも、少しずつ上げていればエラーの範囲も小さいです。しかし、長く止めていると、一度に直すことが増えて、原因も探しにくくなります。

とはいえ、勝手に更新されるのも怖いんですよね。Contact Form 7の件のように、自動更新で白紙になることもあります。

だからこそ、自動更新は止めたうえで、バックアップを取ってから、自分のタイミングで上げる、というやり方が現実的だと思っています。

というわけで

PHPのバージョンアップで画面が真っ白になったら、まず疑うのはプラグインだけではなく、テーマです。

そして、その前に、バックアップを取っておくことです。

AIにコードを調べてもらえば、原因探しはかなり早くなりました。ぜひ、困ったときは試してみてください。

もし、「自分のサイトのPHPを上げたいけど、怖くて手が出せない」「制作会社と連絡がつかなくなった」という方は、お気軽にご相談ください。

https://musilog.net/inquiry/

この記事を書いた人

脇村 隆

Web制作に携わって24年。商工会や自治体など公的機関のWebサイト制作・運用を14年にわたり支援してきました。目的の整理から、WordPressでの構築、公開後の運用、AIを使った業務の効率化まで、一人の担当者として一貫してお手伝いします。
横浜・あざみ野を拠点に活動しています。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。