WordPress PHPバージョンアップ|エラーの直し方と手順

サーバー会社から「古いPHPのサポートを終了します」というメールが届いた。WordPressの管理画面には「最新ではないバージョンのPHPを実行しています」という警告が出ている。でも、バージョンを上げたら画面が真っ白になった、という話も聞く。そんな板挟みの状態で、この記事にたどり着いた方が多いと思います。
こんな不安はありませんか。
- PHPのバージョンアップで、本当にサイトが壊れないか心配
- どのレンタルサーバーの、どの画面で切り替えるのか分からない
- エラーが出たとき、何から手をつければいいのか見当がつかない
- 「Deprecated」や「Fatal error」という英語の意味が分からない
- 自分でやるべきか、業者に頼むべきか決めかねている
- 記事やデータベースは消えていません。プログラムの実行が止まっているだけです
- サーバーの管理画面で切り替え前のPHPに戻せば、数分で元どおり表示されます
- 戻したあとの原因の調べ方は 症状別の原因と対処 にまとめています
WordPressのPHPバージョンアップは、準備の順番さえ守れば、レンタルサーバーの管理画面で数クリックすれば終わる作業です。もしエラーが出ても、同じ画面で元のバージョンに戻せば数十秒から数分でサイトは復旧します。記事やデータベースが消えるわけではありません。
この記事を読めば、切り替え前に何を確認すべきか、国内の主要レンタルサーバー5社でどこを操作するか、エラーが出たときにどう原因を突き止めるかが分かります。そのうえで、自力で進めてよいサイトと、専門家に任せたほうが安全なサイトの見分け方まで判断できるようになります。
筆者はWordPressの修正・バージョンアップ代行を行っている合同会社キューブリックの伊藤です。WordPressを中心に300以上のサイトの構築・運営・復旧に関わってきました。この記事では、WordPress公式の情報と各サーバー会社の公開マニュアル、そして現場で繰り返し見てきたつまずきどころをもとに、順を追って説明します。
PHPのバージョンアップは「準備 → 切り替え → 確認」の順番を守れば、クリック操作だけで完了します。エラーが出ても、サーバー管理画面で旧バージョンに戻せばすぐ復旧し、データは消えません。
ただし、次の3つに当てはまるサイトは、エラーが出たときの自力復旧が難しくなります。
- 開発が止まった(サポート切れの)テーマやプラグインを使っている
- 制作会社が独自に作ったオリジナルテーマで、連絡が取れない
- WordPress本体やプラグインを何年も更新していない
1つでも当てはまるなら、テスト環境で先に確認してくれる代行に任せる選択も現実的です。
伊藤「更新ボタンを押したら壊れそうで怖い」という感覚は正しいです。ただ、怖いのは「戻し方を知らないまま押すこと」であって、PHPの切り替え自体ではありません。この記事では戻し方を先に押さえてから進めます。
古いPHPは修正が止まる。だからバージョンアップが要る
そもそも、なぜサーバー会社やWordPressは、しつこいほどPHPの更新を促してくるのでしょうか。理由を知っておくと、作業の優先度を判断しやすくなります。
公式の推奨はPHP 8.3以上
WordPressの本体も、テーマも、プラグインも、すべてPHPというプログラミング言語で動いています。そのため、WordPressが正常に動く前提として、サーバー側のPHPが一定以上のバージョンである必要があります。
WordPress.org日本語版の「必須要件」ページでは、推奨環境としてPHPバージョン8.3以上、データベースはMySQL 8.0以上またはMariaDB 10.11以上、そしてHTTPS対応が挙げられています(WordPress.org 日本語版「必須要件」・2026年10月22日確認)。同じページに、PHP 7.4以上でも動作はするが公式のサポート終了を迎えている、とも書かれています。これを下回っていても即座に動かなくなるわけではありませんが、新しいWordPressの機能やプラグインが古いPHPでの動作を保証しなくなっていくため、放置するほど「いつか動かなくなる」リスクが積み上がります。
いま自分のサイトがどのPHPで動いているかは、WordPress管理画面の「ツール」>「サイトヘルス」を開き、「情報」タブの「サーバー」欄で確認できます。「このサイトは最新ではないバージョンのPHPを実行しています」と表示されていれば、バージョンアップの対象です。
古いPHPは攻撃の入口になる
PHPには公式のサポート期限があります。期限を過ぎたバージョンは、新しく脆弱性が見つかっても修正プログラムが提供されません。サーバー会社が「サポート終了のお知らせ」を送ってくるのは、この期限が迫っているか、すでに過ぎているからです。
| PHPバージョン | リリース | セキュリティサポート終了 | 2026年10月時点の状態 |
|---|---|---|---|
| 7.4 | 2019年11月 | 2022年11月 | 終了済み |
| 8.0 | 2020年11月 | 2023年11月 | 終了済み |
| 8.1 | 2021年11月 | 2025年12月 | 終了済み |
| 8.2 | 2022年12月 | 2026年12月 | まもなく終了 |
| 8.3 | 2023年11月 | 2027年12月 | サポート中 |
| 8.4 | 2024年11月 | 2028年12月 | サポート中 |
出典。php.net「Supported Versions」をもとに作成。期限は変更されることがあるため、作業前に公式ページで最新の情報を確認してください。
表を見ると分かるとおり、PHP 7系と8.0、8.1はすでにサポートが終わっています。いまこの記事を読んでいる方のサイトが7.4で動いているなら、4年近く修正が止まった状態で公開していることになります。管理画面に警告が出るのは、このためです。
2026年10月21日にPHP本体の重大な脆弱性2件が公表されたときも、修正版が出たのは8.2〜8.5だけで、8.1以前には出ませんでした(この件の詳細はPHPの脆弱性で何をすれば良い?に書いています)。サポート中のバージョンを使っていれば、こうした緊急時の修正はサーバー会社が当ててくれます。使っていなければ、自分で切り替えるしかありません。
加えて、PHP 8系は7系より処理が効率化されているため、切り替え後に表示が速くなることもあります。ただ、速度はサーバーやプラグイン構成にも左右されるので、「必ず速くなる」とまでは言い切れません。主目的はセキュリティと互換性の維持と考えてください。
PHPの脆弱性に関係しているらしい。会社の人からバージョンアップを頼まれそうだが、エラーが出そうで嫌だ。詳しくないので、何かあっても責任が取れない。(要約)
Xの投稿より(2026年10月21日)
この声のように、「必要なのは分かっているけれど、壊したときに責任を負えない」という不安が、更新を先延ばしにする一番の理由です。次の章からは、その不安を具体的な手順で潰していきます。
準備4つを守れば、切り替えは数クリックで終わる
PHPの切り替えそのものは1分で終わります。トラブルの大半は「準備を飛ばしたこと」が原因で、切り替え操作そのものでつまずく人はほとんどいません。全体の流れを先に図で確認しておきましょう。


図の中で、時間がかかるのはSTEP 2とSTEP 3です。逆に言えば、ここを丁寧にやれば、STEP 4でつまずく確率は大きく下がります。それぞれの内容を順に見ていきます。
WordPress管理画面の「ツール」>「サイトヘルス」>「情報」タブ>「サーバー」で、今動いているPHPのバージョンを控えておきます。この数字は、エラーが出たときに戻す先になるので必ずメモしてください。あわせて、契約しているサーバーの管理画面で、提供されているPHPのうち「推奨」と表示されているバージョンを確認します。WordPress側の推奨とサーバー側の推奨、両方を満たすバージョンが切り替え先です。
管理画面の「ダッシュボード」>「更新」から、本体・有効化中のテーマ・使っているプラグインをすべて最新版にします。古いプログラムが残ったままPHPだけを新しくすると、画面が真っ白になる最大の原因になります。停止中で使っていないプラグインやテーマは、停止で止めずに削除まで行ってください。ファイルが残っている限り、エラーの発生源にも攻撃の入口にもなり得ます。
バックアップは2種類必要です。1つはデータベース(記事、固定ページ、設定値が入っています)、もう1つはファイル一式(wp-contentフォルダ内のテーマ・プラグイン・画像、そしてwp-config.phpと.htaccess)です。サーバーの自動バックアップ機能がある場合も、作業直前に自分で取っておくと、戻す地点をはっきりさせられます。
サーバーのステージング機能(本番のコピーサイトを作る機能)や、パソコン上にWordPressを構築できる「Local」などのツールでテスト環境を用意し、先にPHPを切り替えて動作を確認します。必須ではありませんが、企業サイトやお問い合わせが売上に直結するサイトでは、ここを省かないことを勧めます。
互換性チェックのプラグインは、もう当てにしない
古い解説記事には、切り替え前に「PHP Compatibility Checker」というプラグインで対応状況を調べる手順が出てきます。このプラグインは開発元が保守を終えていて、2026年10月の時点では実行しても全部「failed」になります。動いていたころも、検査できたのは PHP 8.0 までで、有料テーマは対象外でした。今から入れる意味はありません(PHP Compatibility Checker は使えない?代わりの確認方法)。
代わりの確認は、プラグイン一覧で最終更新と必要な PHP を見る、テスト環境で実際に PHP を切り替えて debug.log を見る、の2つで行います。最終判断は、テスト環境での実際の動作確認か、切り替え後の確認です。
本番サイトの切り替えは、アクセスが少ない時間帯に行います。企業サイトなら夜間や週末、ECサイトなら注文の少ない時間帯です。万一エラーが出ても、慌てずに戻す余裕が生まれます。
準備が整ったら、いよいよ切り替えです。操作する画面はサーバー会社ごとに名前が違うので、次の章で5社分をまとめました。
切り替えはサーバーの管理画面で行う。国内5社の手順
PHPの切り替えはWordPressの管理画面ではなく、契約しているレンタルサーバーの管理画面で行います。メニュー名や反映までの時間が会社ごとに違うので、まず一覧で比べてから、ご利用のサーバーの手順に進んでください。
| サーバー | 切り替えメニュー | 反映までの時間 | 注意点 |
|---|---|---|---|
| エックスサーバー | サーバーパネル > PHP Ver.切替 | 即時〜数分 | ドメイン単位で変更。戻すのも同じ画面 |
| ConoHa WING | サイト管理 > サイト設定 > 応用設定 > PHP設定 | 即時 | 切り替え後にWAFが誤検知し403になることがある |
| さくらのレンタルサーバ | コントロールパネル > スクリプト設定 > 言語バージョン設定 | 即時〜数十秒 | ドメインごとの個別指定に対応 |
| ロリポップ! | サーバーの管理・設定 > PHP設定 | 5〜10分程度 | 「モジュール版」を選ぶ。反映に時間差がある |
| シン・レンタルサーバー | サーバーパネル > PHP Ver.切替 | 即時〜数分 | 操作感はエックスサーバーとほぼ同じ |
各社の公開マニュアルをもとに作成(2026年10月時点)。画面名は変更されることがあります。
どのサーバーでも共通しているのは、切り替えと「戻す」操作が同じ画面でできるという点です。エラーが出たら、同じ画面で元のバージョンを選び直して保存するだけで復旧します。この安心材料を頭に置いたうえで、各社の手順を見ていきましょう。
エックスサーバーの切り替え手順
国内シェアの大きいエックスサーバーは、PHPの切り替えが「PHP Ver.切替」という専用メニューにまとまっていて分かりやすい部類です。ドメインごとに別々のバージョンを設定できるので、複数サイトを運用している場合は1つずつ試せます。


- XServerアカウントにログインし、対象サーバーの「サーバー管理」(サーバーパネル)を開く
- 「PHP」カテゴリ内の「PHP Ver.切替」をクリック
- 変更したいドメインの右端にある鉛筆マーク(編集)をクリック
- 「変更後のバージョン」のプルダウンから「推奨」と書かれたPHPバージョンを選ぶ
- 「設定する」ボタンをクリックして完了


反映は即時から数分です。切り替え後はブラウザでサイトを開き、表示とログインを確認します。問題があれば、同じ「PHP Ver.切替」で元のバージョンを選び直せば戻せます。
ConoHa WINGの切り替え手順
ConoHa WINGは、PHP設定が「応用設定」タブの中にあるため、初めてだと場所を探すのに少し手間取ります。手順自体は短いです。
- ConoHaコントロールパネルにログイン
- 左メニューの「サイト管理」>「サイト設定」を開く
- 画面上部の「応用設定」タブを選び、「PHP設定」をクリック
- バージョン表示欄の右端にある鉛筆マーク(編集)をクリック
- プルダウンから推奨バージョンを選び、「保存」をクリック
ConoHa WING特有の注意点として、切り替え後に管理画面で「403 Forbidden」が出ることがあります。これはPHPの不具合というより、サーバー内部の挙動が変わったことで備え付けのWAF(不正アクセスを防ぐ仕組み)が誤検知しているケースです。「サイト管理」>「サイトセキュリティ」>「WAF」から検知ログを確認し、誤検知されたルールを除外設定すると解消します。PHPを戻す前に、まずここを疑ってください。
さくらのレンタルサーバの切り替え手順
さくらのレンタルサーバは、PHPのバージョンが「言語バージョン設定」という名前のメニューにあります。「PHP」という単語がメニュー名に入っていないので、見つけにくいポイントです。
- サーバコントロールパネルにログイン
- 左メニューの「スクリプト設定」内にある「言語バージョン設定」をクリック
- 対象ドメインのプルダウンから推奨のPHPバージョンを選ぶ
- 画面下部の「保存する」をクリック
保存後、数秒から数十秒で反映されます。ドメインごとの個別設定に対応しているので、複数サイトを運用している場合も1サイトずつ切り替えられます。戻すときも同じ画面で旧バージョンを選び直して「保存する」です。
ロリポップ!の切り替え手順
ロリポップ!は、PHPの動作方式として「モジュール版」と「CGI版」の2種類が選べます。処理速度の面でモジュール版が推奨されているので、特別な理由がなければ「PHP 8.x(モジュール版)」を選んでください。
- ユーザー専用ページにログイン
- 左メニューの「サーバーの管理・設定」>「PHP設定」を開く
- 設定ドメイン一覧から、対象ドメインの「バージョン」欄を開く
- 推奨されているバージョンの「モジュール版」を選ぶ
- 「変更」ボタンをクリック
ロリポップ!で一番注意したいのは、設定変更から実際に反映されるまで5〜10分程度の時間差があることです。変更直後にサイトを開いて「何も変わっていない」と思い、もう一度操作してしまう方がいますが、少し待ってから確認してください。戻すときも同じだけ待つ必要があります。
シン・レンタルサーバーの切り替え手順
シン・レンタルサーバーは、エックスサーバーと同じ会社系列のサービスで、管理画面の構成もよく似ています。エックスサーバーの手順が分かれば、ほぼ同じ感覚で操作できます。
- サーバーパネルにログイン
- メニュー内の「PHP Ver.切替」をクリック
- 対象ドメインを選び、推奨の最新PHPバージョンを選択
- 設定を反映して完了
反映は即時から数分です。戻す操作も「PHP Ver.切替」から行えます。



サーバーの管理画面に入るログイン情報が分からない、という相談は本当に多いです。制作会社が契約していて、自社では管理画面を開いたことがないケースですね。その場合、PHPの切り替え以前に、まず契約情報を確認するところから始める必要があります。
切り替え後はフォーム送信まで確認する
切り替えが終わったら「エラーが出ていないから大丈夫」で終わらせず、次の項目を一通り確認してください。表示だけ正常で、フォームの送信だけが止まっている、というパターンは珍しくありません。
- サイトヘルスの「サーバー」欄で、PHPバージョンが新しい数字になっている
- トップページ、記事ページ、固定ページが崩れずに表示される(PCとスマートフォンの両方)
- WordPress管理画面にログインでき、投稿の下書き保存ができる
- お問い合わせフォームからテスト送信し、自動返信メールと管理者宛メールが届く
- ECサイトならカート投入から注文完了までの流れが通る
- 画面上部に「Deprecated」「Warning」などの英文が出ていない
すべて問題なければ、PHPのバージョンアップは完了です。ここで何かおかしい箇所が見つかった場合の対処を、次の章で詳しく説明します。
エラーが出たら、まず戻してからログで原因を探す
切り替え直後に画面が真っ白になった、「このサイトで重大なエラーが発生しました」と表示された。こうなると焦りますが、記事やデータベースが消えたわけではなく、プログラムの実行が途中で止まっているだけです。次の順番で対処すれば、落ち着いて原因にたどり着けます(「重大なエラー」の画面そのものの対処は別の記事にもまとめています)。
症状別の原因と対処
まず、いま画面に出ている症状から正体と最初の一手を確認してください。どの症状でも、原因を調べる前に旧PHPへ戻すのが先です。
| 画面に出ている症状 | 正体 | まずやること | 詳しい手順 |
|---|---|---|---|
| 画面が真っ白で何も出ない | Fatal error(処理の停止)。エラーを画面に出さない設定なので何も見えない | 旧PHPに戻す | 戻す → debug.logで原因を特定 |
| 「このサイトで重大なエラーが発生しました」と出る | Fatal error。WordPressがエラーを検知して止めた画面 | 旧PHPに戻す。復旧モードのメールが届いていれば、そのリンクからも入れる | 戻す → Fatalか警告か/重大なエラーの記事 |
| 管理画面にログインできない | 原因のプラグインかテーマが、ログイン処理のところで止まっている | 旧PHPに戻す。戻しても入れないなら、FTPで原因のプラグインを止める | FTPでプラグインを止める |
| ページ上部に Deprecated / Warning の英文が出る | 非推奨の警告。サイト自体は動いている | 急がない。警告を画面に出さない設定にして、テーマとプラグインを更新する | Fatalは停止、Deprecatedは警告 |
| 403 Forbidden が出る | ConoHa WINGでは備え付けのWAFの誤検知が多い。PHPの不具合ではない | WAFの検知ログを見て、誤検知のルールを除外する。PHPを戻す前にここを疑う | ConoHa WINGのWAF |
| 500 Internal Server Error が出る | サーバー側で処理が失敗した合図。中身はFatal errorのことが多く、PHPの設定行(.htaccess の php_value など)が新しい環境で無効になっている場合もある | 旧PHPに戻す。戻しても出るなら .htaccess とサーバーのエラーログを見る | 戻す → debug.logで原因を特定 |
| 表示は正常だが、フォーム送信やプラグイン更新ができない | 一部の関数だけが新PHPで動かず、その処理だけ止まっている | 切り替え後の確認リストを一つずつ試し、止まる処理を特定する | 切り替え後の確認 → debug.logで原因を特定 |
| Contact Form 7 だけ更新できない。「お使いの PHP バージョンでは動作しません」と出る | Contact Form 7 6.2 は PHP 8.3 以上と WordPress 7.1 以上が必要。PHP が足りないので WordPress が更新を止めている | PHP を 8.3 に上げてから更新する。更新できない間も今のフォームは動く | Contact Form 7 の記事 |
表の「詳しい手順」から、下の解説に飛べます。順番は「戻す → 種類を見分ける → 原因を特定する → 直して再挑戦」です。


最優先はPHPを旧バージョンに戻すこと
サイトが表示されない状態を1分でも短くするため、原因を調べる前に、まずサーバー管理画面で切り替え前のバージョンに戻します。前の章で控えたバージョン番号を選び直して保存するだけです。数十秒から数分で、元どおり表示されるはずです。
「戻したら負け」のように感じる方もいますが、そうではありません。本番サイトを止めたまま原因を探すのと、いったん復旧させてから落ち着いて調べるのとでは、後者のほうが確実に安全です。訪問者やお客様に影響が出ない状態を確保してから、次に進みます。
Fatalは停止、Deprecatedは警告
PHPのバージョンアップで出るエラーは、大きく2種類に分かれます。どちらが出ていたかで、対処の緊急度と方法が変わります。
- Fatal error(致命的エラー)/ TypeError / Parse error
-
新しいPHPで廃止された関数や書き方が使われていて、処理がその場で完全に停止している状態です。画面が真っ白になる、「このサイトで重大なエラーが発生しました」と表示される、といった症状はほぼこれです。原因となっているファイルを特定し、修正か停止が必要です。
- Deprecated(非推奨警告)/ Warning
-
「この書き方は将来廃止される予定です」という警告です。サイト自体は動いていますが、ページの上部などに英文のメッセージが露出します。緊急度は低めで、まず警告を画面に出さない設定にしたうえで、テーマやプラグインの対応版を待つか、代替を探します。
画面に出ている英文の先頭に「Fatal error」とあれば前者、「Deprecated」や「Warning」とあれば後者です。真っ白で何も表示されない場合は、エラーが画面に出ない設定になっているだけで、裏では「Fatal error」が起きています。次の方法でログに書き出して確認します。
debug.logで原因のファイルを特定する
どのプラグインやテーマが原因かを突き止める最も確実な方法は、WordPressのデバッグ機能を有効にして、エラーをログファイルに書き出すことです。ここは少し技術的ですが、やることは「設定ファイルに4行追加して、できたログを読む」だけです。
wp-config.phpに4行足す
FTPソフトやサーバーのファイルマネージャーで、WordPressをインストールしたフォルダ直下にある wp-config.php を開きます。/* That's all, stop editing! */(編集が必要なのはここまでです)という行の手前に、次の4行を追加して保存します。すでに define('WP_DEBUG', false); の行がある場合は、その行を置き換えてください。
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
ポイントは3行目と4行目です。WP_DEBUG_DISPLAY を false にしておくと、エラーの内容が訪問者の画面には表示されず、/wp-content/debug.log というファイルにだけ記録されます。公開中のサイトでエラーの中身をそのまま表示すると、サーバー内のファイル構成が外から見えてしまうので、本番では必ずこの設定にしてください。
保存したら、PHPをもう一度新しいバージョンに切り替えて、エラーが出ていたページを開きます(アクセスの少ない時間帯に、短時間で)。これで debug.log にエラーの詳細が書き出されるので、すぐにPHPを旧バージョンに戻し、ログを読みます。
ログは種類・場所・行番号の3つを見る
ログは英文で長く見えますが、構造は決まっています。「エラーの種類: 内容 in ファイルの場所 on line 行番号」という形です。たとえば次のような1行が記録されます。
[22-Oct-2026 02:10:31 UTC] PHP Fatal error: Uncaught TypeError: count():
Argument #1 ($value) must be of type Countable|array, null given
in /home/xxx/public_html/wp-content/plugins/sample-plugin/inc/func.php on line 45
この例では、「Fatal error」なので処理が止まっており、原因は wp-content/plugins/sample-plugin/ にあるプラグインの func.php 45行目、と読み取れます。つまり「sample-plugin」というプラグインが新しいPHPに対応していない、ということです。パスが wp-content/themes/テーマ名/ なら、テーマ側のコードが原因です。
| ログに出る文言 | 意味 | 緊急度 |
|---|---|---|
| PHP Fatal error / Uncaught TypeError | 処理が停止。真っ白や重大なエラーの原因 | 高 |
| PHP Parse error | 文法エラー。ファイルが読み込めない | 高 |
| PHP Warning: Undefined array key | 存在しない配列の項目を参照。PHP 8で警告に格上げ | 中 |
| PHP Deprecated: Passing null to parameter | nullを渡せない関数にnullを渡している(PHP 8.1以降) | 低〜中 |
| PHP Deprecated: Creation of dynamic property | 宣言していないプロパティを作成(PHP 8.2以降) | 低〜中 |
| Cannot modify header information | 別のエラーが先に出力されたことによる二次エラー | 先に出た別のエラーを直せば消える |
ログを読むときのコツは2つあります。1つは、ファイルの一番下(最新)から見ること。もう1つは、大量に出ているときは最初の「Fatal error」を探すことです。後に続くエラーは、最初の1件に引きずられて出ている二次的なものが多く、根本原因を直せばまとめて消えます。
原因が分かったら、デバッグ設定を元に戻す
原因の特定と対処が済んだら、WP_DEBUG を false に戻すか、少なくとも WP_DEBUG_DISPLAY が false のままになっていることを確認してください。デバッグを有効にしたままだと、ログファイルが肥大化したり、思わぬ情報が外部に出たりする可能性があります。
入れないときはFTPでプラグインを止める
原因のプラグインが分かっても、エラーのせいでWordPressの管理画面にログインできないことがあります。その場合は、管理画面を使わずに、FTP経由でプラグインを強制的に無効化します。
/wp-content/plugins/ フォルダを開きます。プラグインごとにフォルダが並んでいます。
debug.logで特定したフォルダ(例。sample-plugin)の名前を、sample-plugin_disabled のように変更します。削除はしません。名前を変えるだけで、WordPressはそのプラグインを見失い、自動的に無効化されます。
無効化できればログインできるようになります。そのプラグインの最新版があれば更新し、更新が止まっているなら同じ機能の代替プラグインを探して入れ替えます。対処が済んだら、フォルダ名を元に戻すか、不要なら削除します。
原因がテーマの場合は、/wp-content/themes/ 内の該当テーマのフォルダ名を同じように変更すると、WordPressが標準テーマ(Twenty Twenty-Fiveなど)に自動で切り替わり、ログインできるようになります。見た目は一時的に変わりますが、復旧の足がかりになります。
自作テーマ・古いテーマで多いPHP 8のエラー例
市販のテーマや公式ディレクトリのプラグインは、開発元が新しいPHPに合わせて更新してくれます。問題は、制作会社が独自に作ったオリジナルテーマや、何年も更新されていないテーマです。PHP 7では「注意」程度で動いていた書き方が、PHP 8では「致命的エラー」に格上げされたものが多く、これが真っ白の原因になります。代表的な例を畳んでおきます。
count(null) が TypeError になる
PHP 7までは count() に null を渡しても警告で済んでいましたが、PHP 8.0以降は処理が停止します。null合体演算子で空配列にフォールバックさせるのが定番の修正です。
// 修正前($items が null だと PHP 8 で停止)
$n = count($items);
// 修正後
$n = count($items ?? []);
クラス名と同じ名前のメソッドがコンストラクタとして動かない
PHP 5時代の書き方で、クラス名と同じ名前のメソッドをコンストラクタとして扱う仕様は、PHP 8で完全に廃止されました。古い自作テーマの functions.php や独自プラグインに残っていることがあります。
// 修正前
class MySQL {
function MySQL() { /* 接続処理 */ }
}
// 修正後
class MySQL {
function __construct() { /* 接続処理 */ }
}
static でないメソッドを :: で静的に呼んでいる
Validate::isMail() のように :: で呼び出しているのに、定義側に static が付いていないと、PHP 8では「Non-static method … cannot be called statically」という致命的エラーになります。定義側に static を付けるのが最短の修正です。
// 修正前
class Validate {
function isMail($str) { /* ... */ }
}
// 修正後
class Validate {
static function isMail($str) { /* ... */ }
}
こうした修正は、1か所ずつ見れば難しくありません。ただ、オリジナルテーマでは同じ書き方が何十か所にも散らばっていることが多く、1つ直すと次のエラーが出る、という作業の繰り返しになります。ここから先は、コードを読める人の領分です。
管理しているサイトのPHPバージョンアップと、それに伴うエラー修正にギリギリまで追われた。最後はサーバー会社のメンテナンスが入って、できることが終わった。(要約)
Xの投稿より(2026年10月22日)
PHP 7から8へのバージョンアップは神経を使う。開発環境を構築して検証し、エラーが出たら修正となると大変。(要約)
Xの投稿より(2026年10月21日)
どちらもWeb制作に携わっている方の投稿で、プロでも「検証環境を作って、エラーを1つずつ直す」という地道な作業になることが分かります。裏を返せば、手順は確立されていて、時間と知識をかければ必ず解決する作業でもあります。
現場で見ていると、「PHPを上げたら壊れた」の正体は、たいてい「何年も更新していなかったプラグインやテーマ」です。PHPそのものが悪さをすることはまれです。普段から更新していれば、PHPの切り替えは拍子抜けするほど何も起きません。
更新しているサイトは自分で、していないサイトは代行で
ここまで読んで「自分でできそう」と感じた方は、前の章の手順どおりに進めれば大丈夫です。一方で、「読んでいて途中から不安になった」という方もいるはずです。どちらが向いているかは、サイトの状態と、かけられる時間、止まったときの損失で決まります。
自分で進めてよいサイト
- 市販テーマ・公式プラグインだけで構成されている
- 本体・プラグインを日頃から更新している
- サーバー管理画面にログインできる
- 数時間止まっても大きな損失にならない
代行を検討したほうがよいサイト
- 制作会社が作ったオリジナルテーマで、連絡が取れない
- 更新が止まったプラグインを使い続けている
- 何年も本体・プラグインを更新していない
- お問い合わせやECが売上に直結している
右側の条件に当てはまるサイトは、PHPを上げた瞬間にエラーが出る確率が高いだけでなく、出たあとの修正が「コードを直す」作業になりがちです。前の章で見たように、1か所直して終わりにはならず、テスト環境を作って何度も検証を繰り返すことになります。
代行はテスト環境・更新込み・他社制作可で選ぶ
代行業者は多くありますが、料金の見え方や作業範囲はまちまちです。依頼する前に、次の3点は必ず確認してください。
- テスト環境で先に試してから本番を触るか。いきなり本番で切り替える業者だと、依頼する意味が薄れます。
- PHPの切り替えだけでなく、本体・プラグイン・テーマの更新まで含まれるか。PHPだけ上げても、古いプラグインが残っていればエラーの原因はそのままです。
- 他社が制作したサイトでも同じ料金か。「自社制作以外は割高」「対象外」という業者も多いので、事前に確認が必要です。
当社の代行は全部込み ¥24,800〜
当社では、WordPress本体・プラグイン・テーマの更新、PHPの切り替え、基本のセキュリティ対策、テスト環境での事前確認、作業前のバックアップまでを、全部込み ¥24,800〜(税込)で代行しています。他社が制作したサイトも同じ料金です。
| 比較項目 | 制作会社・他の業者 | 当社 |
|---|---|---|
| 料金の目安 | 本体の更新だけで ¥33,000〜 | 全部込み ¥24,800〜(税込) |
| PHP切替・セキュリティ対策 | 別料金のことが多い | 込み |
| 他社が作ったサイト | 割高・対象外 | 同じ料金 |
| 事前の確認 | 本番でいきなり更新 | テスト環境で確認してから |
| 対応する人 | 担当者による | 代表が直接対応(Web歴15年) |
他社の料金目安は、2026年10月に制作会社・業者のサイトを当社で調べたものです。
流れは、サイトのURLをフォームかLINEで送っていただくと、即日で今のWordPress・PHP・プラグインのバージョンと、更新で影響が出そうな箇所を外から確認し、結果と全部込みの金額を1通のメールでお返しします(ログイン情報は不要・無料)。ご返信がなければそのまま終了で、こちらから営業の連絡はしません。依頼いただいた場合は、本番のコピーで先に更新して表示・フォーム・ログインを確認し、問題がないことを確かめてから本番を更新します。公開後1か月は無償で対応します。
診断の結果「このサイトなら自分で上げて大丈夫ですよ」とお伝えすることもあります。相見積もりの1社として、気軽に使ってください。
よくある質問(FAQ)
- PHPのバージョンアップでサイトのデータが消えることはありますか
-
ありません。PHPの切り替えはプログラムの実行環境を変えるだけで、記事や画像、データベースには触れません。画面が真っ白になっても、旧バージョンに戻せば元どおり表示されます。
- PHPのバージョンはWordPressの管理画面から変えられますか
-
変えられません。WordPressの管理画面でできるのは、サイトヘルスで現在のバージョンを確認することまでです。切り替えは、契約しているレンタルサーバーの管理画面で行います。
- どのバージョンに上げればよいですか
-
WordPress公式が推奨するバージョン(2026年時点でPHP 8.3以上)と、サーバー会社が「推奨」と表示しているバージョンの両方を満たすものを選びます。サポート期限が終わっているPHP 8.1以下は避けてください。
- 「Deprecated」という文字が画面に出ています。すぐ対処が必要ですか
-
サイトは動いているので緊急性は低いですが、訪問者に見えてしまうので、wp-config.phpで WP_DEBUG_DISPLAY を false にして非表示にしてください。そのうえで、原因のテーマやプラグインの対応版が出るのを待つか、代替を検討します。
- PHPを戻したら直りました。このまま古いPHPで使い続けてもいいですか
-
一時的な回避としては問題ありませんが、サポートが終了したPHPはセキュリティ修正が提供されません。サーバー会社側で古いPHPの提供自体が終わることもあるため、原因のプラグインやテーマを直したうえで、改めて新しいバージョンへ切り替えてください。
- PHPのバージョンアップだけを代行に頼めますか
-
頼めます。ただ、古いWordPressやプラグインのままPHPだけを上げると動かなくなることが多いため、本体・プラグイン・テーマの更新とまとめて行うことを勧めています。当社の場合、まとめても料金は全部込みで同じです。
- 本体・プラグイン・テーマの更新とPHPの切り替えを全部込みで
- 本番のコピー(テスト環境)で表示・フォーム・ログインを確かめてから本番を更新
- 切り替えで真っ白になった・エラーが出たサイトの修正
- 他社が制作したサイトも同じ料金
- 営業の電話・メールはしません
合同会社キューブリック まずは状況をお聞かせください。作業前に内容と金額をお伝えし、追加料金はいただきません。
代表社員 / WEBエンジニアURLを送るだけで、今のバージョンと影響が出そうな箇所を外から確認します。相見積もり歓迎・営業はしません。

