サーバー会社から届いた「PHPのバージョンを上げてください」という案内。上げたほうがよいと分かっていても、サイトが壊れるかもしれないと思うと、なかなか踏み切れない。そんな悩みを抱える方は多いと思います。
当社では2026年10月下旬から11月上旬にかけて、PHPやWordPressの最新化をご依頼いただいた43サイトを検証しました。基本的な進め方は、本番のコピーを手元の検証環境に復元し、新しいPHPで全ページを開いて、エラーの有無や本番との見た目の違いを確認するというものです。結果は、手を加えずに動いたサイトから、修正しなければトップページから500エラーになるサイトまで分かれました。この記事では、何がその違いにつながったのかを紹介します。
PHPを8系に上げても大丈夫?おおよその目安は「WordPress本体の版」
43サイトの検証で結果を分けたのは、WordPress本体を新しい状態に保っていたかどうかでした。本体の更新が6.5以前で止まっていた24サイトのうち、23サイトは手直しをしないと致命的エラーになりました(残る1サイトは記録から判定できず)。これに対し、本体がすでに7系だった11サイトで致命的エラーになったのは3サイトです。本体が古いままのサイトでは、テーマやプラグインも古い版が残っていることが多いためです。

43サイトを検証した結果
対象の43サイトには、同じお客様の17サイトが含まれており、そこで使われていたテーマは3系統に限られます。数字の偏りを避けるため、この17サイトを除いた26サイトの結果も併記します。
| 結果 | 43サイト | 17サイトを除く26サイト |
|---|---|---|
| 手直しせずに動いた | 6 | 6 |
| 小さな手直し(警告の修正、1〜数ファイル)で動いた | 6 | 6 |
| 修正しないと致命的エラーで止まった | 30 | 14 |
| 記録だけでは判定できない | 1 | 0 |
「手直しなし」に含めた6サイトのうち2サイトは、プラグインなどの更新後の結果のみを記録しています。17サイトを集計から外しても、半分以上のサイトで、動かすために何らかの修正が必要でした。ただ、致命的エラーが出たサイトも、手元の検証で原因を修正したあとは全ページのエラーが解消し、本番と同じ見た目で動いています。
一方、すでにPHP 8系だった5サイト(8.3のまま据え置いた1サイトを含む)では、致命的エラーが出たのは1サイトだけです。それもPHPが原因ではなく、お問い合わせフォームのプラグイン(Contact Form 7)を更新したことで、テーマから利用していた機能がなくなったためでした。8系の中での更新は、PHP 7系から8系へ移行する場合よりもリスクが小さいといえます。
壊れやすいサイトに見られた特徴
WordPress本体の更新が何年も止まっている
前述のとおり、最も分かりやすい判断の目安です。本体が4系や5系のままだったサイトでは、ほぼすべてで手直しが必要になりました。本体の更新が止まっていると、テーマやプラグインも当時の版を使い続けているケースがほとんどです。
古いテーマを使い続けている
当社が壊れやすいと感じているのは、古い購入テーマです。何年も前の版を使い続けているテーマには、PHP 8では使えない書き方が残っている場合があります。今回の検証でも、2016年ごろの版の無料テーマや、古い版のまま使用されていたテーマで、致命的エラーが相次ぎました。
一方で、現在も更新が続いているテーマ(SWELL、Lightning、Snow Monkeyなど)は、テーマ自体を修正する必要がありませんでした。自作・独自のテーマについては、何も起こらなかったサイトもあれば、トップページが500エラーになったサイトもあり、結果に大きな開きがありました。
古いプラグインがそのまま残っている
プラグインへの対処は、現在も更新が続いているかどうかによって異なりました。Smart Slider 3、Jetpack、Contact Form 7などは、古い版で致命的エラーが出ても、最新版への更新で解消しました。一方、固定ページの並べ替え、マーカー表示、セキュリティ対策などに使う古いプラグインには、ファイルの修正や停止が必要になったものもあります。
そのまま動いたサイトに共通する特徴
手直しをせずに動いたサイトでは、WordPress本体・テーマ・プラグインを、日頃から更新していた点が共通していました。PHPは7.4のままでも、本体は最新の7.1系で、テーマとプラグインもほぼ最新というサイトもありました。このサイトで必要だったのは、PHP 8.3以上を要するContact Form 7の更新だけで、本番との見た目にも違いはありませんでした。
つまり、古いのがPHPのバージョンだけなら、上げてもほとんど問題は起こりません。注意が必要なのは、PHPだけでなく、本体やテーマの更新も古い版で止まっているサイトです。
ここまでのポイント
PHPを8系に上げたときに壊れるかどうかを左右したのは、PHP自体のバージョンよりも、サイト全体がどの程度、古い状態のままになっているかでした。本体が古い、テーマが古い、古いプラグインが残っている。この3つが重なるほど、手直しが必要になります。日頃から更新しているサイトであれば、PHPを上げても大きな問題は起こりにくいといえます。
PHPを上げる前に自分で確認するには
ご自身のサイトがどちらに近いかは、次の3つを確認すると見当がつきます。
- WordPress本体の版:管理画面の「ダッシュボード」→「更新」で確認する。6系以前から更新されていなければ、手直しが必要になる可能性が高い
- テーマ:「外観」→「テーマ」で版を確認し、配布元・販売元のサイトで最新版とPHP 8への対応状況を調べる。自作テーマの場合は制作会社に確認する
- プラグイン:「プラグイン」の一覧を開き、更新が溜まっていないか、何年も更新されていないものがないかを確認する
本体やプラグインが古い場合は、本番のPHPをいきなり上げず、まず本番のコピーで試すことをおすすめします。ある本番サイトでは、PHPを8.4に上げると「重大なエラー」が出ましたが、7.4に戻した時点で表示が復旧しました。ただし、戻せるのはPHPだけです。その間に本体やプラグインも更新していた場合、それらが元に戻るわけではありません。
手元の検証で問題が見つからなくても、本番サーバーとの設定の違いから不具合が出る場合もあります。具体例は、PHPバージョンアップ後のWordPressトラブル10事例で紹介しています。
技術者向け:何が致命的エラーの原因になったか
今回、手直しが必要になった原因を種類ごとに整理しました。いずれもPHP 7では警告にとどまるか、そのまま問題なく動いていた書き方です。
| 原因 | PHP 8での動き | 修正方法 |
|---|---|---|
| クォートで囲まれていない文字列(未定義の定数) | 致命的エラー | 文字列をクォートで囲む |
| create_function | 関数の削除により致命的エラー | 無名関数へ書き換える |
| クラス名と同じ名前のコンストラクタ | コンストラクタとして呼び出されず、ウィジェットなどで致命的エラー | __construct に書き換える |
| 親クラスとメソッドの引数が一致しない | 致命的エラー | 親クラスに引数を合わせる |
| 文字列の {} による添字、余計な記号 | 構文エラー | [] に変更する、記号を取り除く |
| 名前に予約語(readonly、mixed)を使っている | 構文エラー | 名前を変更する、プラグインを更新する |
| 未定義の配列やnullを count() に渡す | 致命的エラー | 配列であることを確認してから数える |
| 古いContact Form 7(4系) | お問い合わせページで致命的エラー | PHP 7のまま先に更新する |
最新版のContact Form 7には、PHP 8.3以上が必要です。PHP 7のままでは最新版へ更新できません。そのため、PHP 7の段階で、PHP 7でも動く6.1系まで更新してからPHPを切り替え、その後に最新版へ上げる手順で進めました。更新する順序については、PHP 7.4から8へのバージョンアップで何が起きる?でも説明しています。
よくある質問
Q. PHPを上げないままにしておくと、どうなりますか?
サポートを終了したPHPには、セキュリティの修正が届かなくなります。加えて、Contact Form 7の最新版のように、新しいPHPでなければ更新できないプラグインも出てきています。PHPを古いままにしておくと、プラグインも更新できなくなってしまいます。
Q. 致命的エラーが出るサイトは、作り直すしかありませんか?
いいえ。今回の30サイトは、原因となったファイルの修正やプラグインの更新・停止により、手元の検証ではすべてエラーなく動く状態になりました。ただし、非常に古いサイトの場合、修正よりも作り直すほうが安く済むこともあります。実際、1サイトは本番のサーバー側の事情もあって、静的なページへ作り替えました。
Q. 8.3と8.4なら、どちらに上げるのがよいですか?
サーバー会社で選択できるうち、新しいほうをおすすめします。今回も、サーバーによって8.4を選べないことがあり、8.3にしたサイトが多くありました。7系から8系への変化と比べると、8.3から8.4への変化は小さいものです。
PHPのバージョンアップが心配な方へ:影響を無料で確認します
「PHPを上げたいけれど、自分のサイトがどちらに当てはまるのか分からない」とお悩みなら、当社へご相談ください。現在のPHPとWordPress本体の版に加え、バージョンを上げると影響が出そうな箇所を無料で確認します。手元での検証や修正が必要であれば、作業に入る前にお見積りをご提示します。
PHP 7系からのバージョンアップは、基本料金1サイト8,800円(税込)で承っています。費用がどのように決まるかは、PHPのバージョンアップ費用の記事でご案内しています。
▶ PHPバージョンアップの無料確認を申し込む(お問い合わせ)
PHPのバージョンアップを楽にする一番の近道は、本体やプラグインを日頃から更新しておくことです。当社の保守サポート(月額3,800円から)では、日々の更新はもちろん、PHPを上げる前の確認までお任せいただけます。
更新履歴
- 2026年11月8日:作成(当社が2026年10月下旬〜11月上旬に検証した43サイトの結果)