WordPressを長く運用していると、いつか必ず直面するのがPHPのバージョンアップです。
WordPressはバージョンが上がるたびにPHPの最低動作要件も引き上げられており、古いPHPのままでは「WordPressが更新できない」「管理画面に警告が出る」といった状態になってきます。
この記事では、WordPressのPHPバージョンアップを安全に進めるための流れをまとめています。
この記事でわかること
- バージョンアップ前にやっておくべき確認事項
- LOCAL(またはローカル環境)を使ったエラーの洗い出し方
- テーマ・プラグインのエラー対処の考え方
- LOCAL → テストサーバー → 本番の3段階で安全に移行する手順
1. バージョンアップ前に確認すること
現在の環境を把握する
まず現状を整理します。確認するのは以下のポイントです。
- 現在のPHPバージョン
- WordPressのバージョン
- テーマの構成とファイル数
- 使用中のプラグインとその役割・最終更新日
- 記事数(投稿・固定ページ・カスタム投稿)
- functions.phpに何が書かれているか
特にプラグインは、最終更新が数年前のものや、サービス自体が終了しているものが混入していることがあります。バージョンアップのタイミングは、こういった古いプラグインを見直す良い機会にもなります。
バックアップを取る
作業前のバックアップは必須です。
PHPのバージョンアップは、WordPressのバージョンアップと違ったエラーが発生することが多く、見慣れないエラーに対応することも多いです。
そのため1つの手段だけでなく、複数の方法で取ることをおすすめします。
【バックアップ方法例】
- All-in-One WP Migration でのエクスポート
- BackWPup などのバックアッププラグイン
- サーバーパネルのバックアップ機能など
本番での失敗は取り返しがつかないため、バックアップは必ず複数手段で取っておいてください。
2. LOCAL(またはローカル環境)でエラーを洗い出す
いきなり本番のPHPを上げるのは危険です。
まずローカル環境(LOCAL)でエラーを洗い出します。
手順
- LOCALでPHP8環境のWordPressを新規作成する
- All-in-One WP Migrationで現行サイト(PHP7)のデータをエクスポートする
- LOCALのPHP8環境にインポートする
これでPHP8環境に現行データを放り込んだ状態になります。
なんの準備もなく放り込むと、基本的にエラーが出ます。これが正常です。
エラーを分類する
出たエラーは大きく2種類に分けられます。
- テーマ起因のエラー:functions.phpやテーマファイルのコードがPHP8に対応していない
- プラグイン起因のエラー:プラグインがPHP8に未対応
まずは致命的なエラー(画面が真っ白になる・管理画面に入れないなど)から対処して、動く状態にすることを最優先にします。
3. エラーを修正する
まず致命的なエラーから潰す
Warningレベルのエラーは後回しにして、まずサイトが動く状態にすることを優先します。
致命的なエラーを起こしているプラグインは、この段階では一旦「停止」にとどめておいてください(削除はしない)。テーマ側の修正が終わってから改めて対応します。
テーマコードの修正
functions.phpとテーマファイルを修正します。
最近はAI(ClaudeやChatGPT)を使う方が間違いがないので、AIを使って修正すると楽に進められます。
AIにファイルを渡して「このファイルをPHP8対応にしてください」 などの指示で対応できます。
ファイルの渡し方は2通りあります。
- ファイルが多い・内容を細かく把握したくない → まるっと書き換えを依頼
- 自分のコードの構造を把握しておきたい → 全文渡したあと、指摘だけもらって必要なところだけ手動で修正
まるっと書き換えの場合、意図しない箇所まで書き換えられることがあるため、差分や修正意図は必ず確認する必要があります。
テーマファイルの修正
テーマファイルは1ファイルずつ渡して確認するのがおすすめです。
「このファイルをPHP8対応にしてください」 などの指示で対応できます。
まとめて渡すと関係ない箇所まで書き換えられることがあるため、 ファイルごとに確認・修正していく方が安全です。
また、古いテーマファイルは直接クライアントの情報(住所、名前、電話番号 等)が書き込まれていることがあり、AIに渡す前にダミーデータに差し替えるなどプライバシーへの配慮も必要です。
よくある修正ポイント
- 未定義変数の参照(PHP8から検出が厳しくなっている)
- 定数の重複定義
- 廃止された定数・関数の置き換え(
TEMPLATEPATH→get_template_directory()など) - スキーマの古い記述(
data-vocabulary.org→schema.orgなど)
修正方針について
「せっかくだからリファクタリングしたい」「ファイルを整理統合したい」という気持ちになりますが、動いているコードを無理に触るとトラブルが増えます。
修正はあくまで「PHP8で動かすために必要な箇所だけ」に絞るのが現実的な方針です。
プラグインの対応
テーマの修正が終わったら、停止しておいたプラグインを見直します。
対応パターンは以下の3つです。
| 状況 | 対応 |
|---|---|
| プラグインを更新すればPHP8で動く | 更新して対応 |
| PHP8未対応・代替プラグインがある | 代替プラグインへ移行 |
| サービス終了・代替なし | 停止・削除。必要なら自作も検討 |
サービスが終了しているプラグインはセキュリティリスクになるため、停止・削除を検討してください。
4. 本番反映の3段階
LOCALでの修正が完了したら、いきなり本番へは反映しません。
LOCAL → テストサーバー → 本番 の3段階で進めます。
STEP 1:LOCALで最終確認(PHP8)
本番へ移す前に、LOCAL上で以下を確認します。
- PHP8環境でテーマのエラーが出ないこと
- プラグインが正常に動くこと
- 表示崩れがないこと
STEP 2:テストサーバーに現行サイトを復元(PHP7)
テストサーバーのPHPを7系(修正前に近いバージョン)にして、現行サイト(PHP7)を復元します。
データ量が多い場合は以下のように分けると安全です。
- DBはAll-in-One WP Migrationでエクスポート→インポート
- 画像・プラグイン・テーマはFTPでアップロード
STEP 3:テストサーバーにPHP8対応済みデータを上書き(PHP7のまま)
LOCALで修正済みのデータをテストサーバーに上書きします。
この段階ではまだPHPはPHP7のままです。
PHP8対応済みデータがPHP7環境でも正常に動くことを確認します。
STEP 4:テストサーバーをPHP8に切り替えて確認(PHP7 → PHP8)
サーバーパネルからPHPのバージョンをPHP8系に変更します。
切り替え後に表示・動作を再度確認します。エラーが出た場合はここで修正します。
テストサーバーで一度この流れを通しておくことで、本番での事故リスクがぐっと下がります。
STEP 5:本番サーバーのバックアップ(PHP7のまま)
テストサーバーで問題がないことを確認したら、本番作業に入ります。
まず本番サーバーのバックアップを複数手段で取ります。
STEP 6:本番サーバーにPHP8対応済みデータを上書き(PHP7のまま)
テストサーバーと同じ手順で、本番サーバーにデータを上書きします。
All-in-One WP Migrationを使う場合の注意点
エクスポート側(LOCAL)とインポート側(本番サーバー)でプラグインのバージョンが違うとインポートエラーが発生します。作業前にバージョンを揃えておいてください。
STEP 7:本番サーバーをPHP8に切り替えて確認(PHP7 → PHP8)
本番サーバーパネルからPHPのバージョンを変更します。
切り替え後はフロント・管理画面・各種プラグインの動作を確認して完了です。
まとめ:作業前チェックリスト
【バージョンアップ前】
□ 現在のPHP・WPバージョンを確認した
□ プラグインの棚卸しをした(古いもの・サービス終了のものを確認)
□ バックアップを複数手段で取った
【LOCAL作業】
□ PHP8環境で現行データのエラーを洗い出した
□ テーマ(functions.php・テーマファイル)の修正が完了した
□ プラグインの対応(更新・代替・削除)が完了した
□ 表示・動作確認が完了した
【本番反映前】
□ テストサーバーで本番と同じ手順を一度通した
□ 本番バックアップを取った
【本番反映後】
□ フロントの表示確認をした
□ 管理画面・投稿の動作確認をした
□ フォームなど各種プラグインの動作確認をした
PHPバージョンアップは準備と手順さえ踏めば、それほど怖いものではありません。
「いきなり本番で切り替える」だけは避けて、LOCAL → テストサーバー → 本番の3段階で進めると、基本的に安全にバージョンアップ対応することができます。
関連記事

