この記事をシェアする

【初心者向け】PHPのバージョンを上げるとサイトが壊れるのはなぜ?古いテーマ・プラグインの注意点

【初心者向け】PHPのバージョンを上げるとサイトが壊れるのはなぜ?古いテーマ・プラグインの注意点

株式会社Devote代表の高橋です。

ホームページの多くは、「PHP」というプログラミング言語(コンピューターへの命令を書くための言葉)で動いています。WordPressもそのひとつです。このPHPのバージョンを上げたとたん、表示が崩れたり、画面が真っ白になったりすることがあります。

2026年10月21日(日本時間)には、PHPの重大な脆弱性(セキュリティ上の弱点)を直した修正版が公開されました。悪用されると、サーバーの上で勝手にプログラムを動かされるおそれがある内容です。この記事は少し技術寄りですが、専門用語にはかっこで説明をつけています。

この記事でわかること

  • PHPを上げるとサイトが壊れることがある理由
  • 新しいPHPで使えなくなった書き方の例
  • バージョンを上げる前に確かめておくこと
  • 表示が崩れたときの直し方の考え方

1. PHPを上げると、古い書き方が読めなくなる

サイトが壊れるのは、プログラムの中に、新しいPHPでは使えない古い書き方が残っているためです。

WordPress本体も、見た目を決めるテーマも、機能を足すプラグインも、中身はPHPで書かれています。PHPは数年ごとに新しいバージョンが出て、そのたびに古い書き方が整理されます。整理は次の順番で進みます。

  1. 「非推奨」(いずれ使えなくなる予定なので、使わないでくださいという扱い)になる
  2. その後のバージョンで削除される
  3. 削除された書き方が残っていると、新しいPHPでは読み取れず、そこで処理が止まる

たとえるなら、古い言い回しの説明書を、新しい世代の人が読むようなものです。もう使われていない言葉が出てくると、そこで手が止まってしまいます。

2. 新しいPHPで使えなくなった書き方の例

特に影響が大きいのはPHP 8.0です。それまで警告で済んでいた問題の多くが、エラーで止まるようになりました。

WordPressの古いテーマやプラグインでよく見かけるのは、次のような書き方です。

バージョン変わったこと扱い
PHP 7.0mysql_ で始まる古いデータベース用の関数(決まった処理をひとまとめにした命令)削除
PHP 8.0each() と create_function()削除(7.2から非推奨)
PHP 8.0文字列から波かっこで1文字を取り出す書き方($str{0})使えなくなった(7.4から非推奨)
PHP 8.0以前は警告を出すだけで先へ進んでいた多くの問題エラーで止まるようになった
PHP 8.1nullを受け付けない内部関数(PHPに最初から入っている関数)に、null(値が空の状態)を渡すこと非推奨(警告が出る)
PHP 8.2動的プロパティ(クラスに宣言していないプロパティを後から作ること)非推奨

表の中の「クラス」はプログラムの部品の設計図、「プロパティ」はその部品が持つ値のことです。

7系では何となく動いていたサイトが、8系に上げたとたんに真っ白になる。よくある原因のひとつが、8.0の「警告からエラーへ」の変化です。

8.1と8.2の変更は非推奨の段階で、すぐに止まるわけではありません。ただ、設定によっては画面に警告の文が出たり、エラーログ(サーバーが残すエラーの記録)が警告で埋まったりします。

3. 更新が止まったテーマやプラグインほど、つまずきやすい

使えなくなる書き方は、多くの場合、前もって非推奨として予告されています。開発が続いているものは更新で対応してくれるため、問題になるのは更新が止まっているものです。

古い書き方が残りやすいのは、次のようなものです。

  • 作者が開発をやめたプラグイン
  • 制作会社がそのサイトのために作り、その後は手を入れていないテーマ
  • 配布されているテーマを直接書き換えたため、更新すると変更が消えてしまい、更新できなくなっているテーマ

上げる幅が大きいほど、直す場所が増える

弊社にも、PHPを5.4から8.3へ一気に上げたところ、表示が崩れてしまったサイトのご相談がありました。5.4のころの書き方には、7系や8系で使えなくなったものが多く含まれます。少しずつ上げていれば分けて対応できた作業が、一度にまとめて出てきます。

エラーの原因が、別のところにあることもある

PHPを上げたあとにエラーが出たサイトでは、はじめはカレンダーのプラグインが合っていないように見えました。調べ直すと、本当の原因はWordPress本体がPHPのバージョンに合っていなかったこと(あるいは、過去の更新がうまくいかずファイルが壊れていた可能性)でした。このときの対応は次のとおりです。

  1. バックアップを取る
  2. WordPress本体のファイルを入れ替え、更新する
  3. 原因になっていたプラグインを止める
  4. お客さまに表示を確かめていただく

こうした例は実際の事例をまとめた記事でも紹介しています。

4. バージョンを上げる前に確かめておくこと

上げる前に、今のバージョン、テーマとプラグインの状態、元に戻せる準備を確かめます。見る場所は次のとおりです。

確かめること見る場所・やり方
今のPHPのバージョンWordPressの管理画面の「ツール」→「サイトヘルス」→「情報」→「サーバー」
テーマ・プラグインの更新状況管理画面の一覧で、更新が来ていないか、最後に更新されたのがいつか
プラグインに必要なPHPのバージョン公式サイトで配布されているプラグインのページ(必要なPHPのバージョンと最終更新日が書かれている)
独自に作ったテーマ、書き換えたテーマ中のプログラムを開き、2の表にあるような書き方が残っていないか
元に戻せる準備サイトのファイルとデータベース(記事や設定が入っている場所)のバックアップ、検証用の環境

バージョンの確認手順は、PHPのバージョンの確認手順のお知らせにもまとめています。

サポート期限と見比べる

バージョンが分かったら、サポート期限(PHPの開発チームがセキュリティの修正を出す最後の日)と見比べます。下の表には、2026年10月21日に出た修正版も入れています。

バージョンサポート期限2026年10月21日の修正版
PHP 7.42022年11月28日(終了)なし
PHP 8.02023年11月26日(終了)なし
PHP 8.12025年12月31日(終了)なし
PHP 8.22026年12月31日8.2.35
PHP 8.32027年12月31日8.3.36
PHP 8.42028年12月31日8.4.27
PHP 8.52029年12月31日8.5.12

今から上げるなら、8.3以上を目安にするとよいでしょう。8.2は修正版が出ていますが、2026年12月31日で期限を迎えます。

今回の脆弱性はPHPそのものの問題で、WordPressやプラグインを最新にしても防げません。JPCERT/CC(日本のセキュリティ情報の窓口)も注意喚起を出しています。

本番の前に、検証用の環境で試す

弊社では基本的に、作業の前にバックアップを取り、検証用の環境で新しいPHPでの表示と動作を確かめてから本番に反映しています。レンタルサーバーによっては、ステージング(本番を複製して試せる場所)を作れる機能もあります。

契約しているサーバーで新しいPHPが選べない場合は、サーバーを移ることも考えます。流れはサーバー移転の流れと注意点にまとめています。

5. 表示が崩れたときの、直し方の考え方

まず元に戻せるかを考え、次に原因の場所を探し、最後に直し方を選びます。進め方は次のとおりです。

  1. PHPのバージョンを戻せるか考える。多くのレンタルサーバーでは管理画面から戻せますが、サポートの切れたバージョンに戻すのは一時しのぎです
  2. エラーログで、どのファイルの何行目で止まったかを見る。ファイルの場所から、WordPress本体か、テーマか、どのプラグインかの見当がつきます
  3. ログが見られなければ、検証用の環境でプラグインを1つずつ止めて、どれで直るかを確かめる
  4. 原因に合わせて、直し方を選ぶ

先ほどのカレンダーの例のように、いちばんあやしく見えた場所が本当の原因とは限りません。思い込まずに、ひとつずつ確かめます。

原因が分かったあとの直し方は、おおむね次の表のように考えます。

原因の状態直し方
更新が出ている新しいバージョンに更新する
開発が止まっているプラグイン同じ働きをする別のプラグインに置きかえる
独自に作ったテーマ使えなくなった書き方を、新しい書き方に直す
なくても困らない機能そのプラグインを止める

プラグインを止めれば、そのプラグインが担っていた表示や機能もなくなります。作業のあとは、何が変わったのかを、サイトを使う人と一緒に確かめておきます。

まとめ

PHPを上げてサイトが壊れるのは、古い書き方が新しいPHPで読めなくなるためです。要点を振り返ります。

  • PHP 8.0から、警告で済んでいた問題の多くがエラーで止まるようになった
  • 更新が止まったテーマやプラグイン、上げる幅が大きいサイトほどつまずきやすい
  • 8.1以前はサポートが終わっていて、10月21日の修正版も出ていない。上げるなら8.3以上が目安
  • 上げる前にバックアップを取り、検証用の環境で確かめてから本番に反映する
  • 崩れたら、エラーログで原因の場所を確かめてから直し方を選ぶ

弊社では、他社が作ったサイトも含めて、PHPのバージョンアップから月額の保守まで承っています。サイトの公開やリニューアルのときにもPHPのバージョンを確認し、上げる必要があれば、ご説明して了承をいただいてから上げています。

「うちのサイトは、今のPHPのままで大丈夫だろうか」

そのような場合は、1時間の無料相談をご利用ください。保守・運用サポートのページを見る


コーポレートサイト制作ならご相談ください。

デボートはクライアントの悩みを共に解決する伴走型のWeb制作会社です。「Webサイトで集客をしたい」「採用できない」「人手が足りない」といった悩みをお持ちなら、ぜひお気軽にご相談くださいませ。

この記事を書いた人

高橋 完聖のプロフィール画像
高橋 完聖 株式会社Devote 代表 / マーケター・Webディレクター・エンジニア

千葉県出身。大手ファミレスチェーンで店舗のマネジメントや新店舗の立ち上げを経験したのち、Web制作会社のコーダーに転身。エンジニア、ECサイトの構築・運営、営業、コンサルタントを経験し、フリーランスを経て株式会社Devoteを設立しました。現在は千葉県柏市を拠点に、経営をしながら現場でディレクター・エンジニア・マーケターとして活動し、コーポレートサイトや採用サイトの制作から公開後の保守・運用まで担当しています。

プロフィールを見る

記事が良かったらシェアをお願いします

Devote会社資料

Devoteのサービスや
特徴がわかる会社資料

会社の概要やサービス、制作の流れ、料金、実績や制作スケジュールを紹介。まずは見積もりや費用感を確認したい方もお気軽にご請求ください。