メインコンテンツへスキップ

COLUMN

プラグインのPHP 8対応確認、WordPressのPHPを上げる前の4つの方法

更新・保守・トラブル公開日
WordPressのプラグインがPHP 8に対応しているかを、手書きの一覧とノートパソコンを見比べて確認する男性のイラスト

この記事でわかること

  • プラグインのPHP 8対応を確認する4つの方法と、それぞれで分かること
  • 配布ページのRequires PHPと最終更新日の正しい読み方
  • 更新が止まっているプラグインとテーマの見分け方
  • PHP Compatibility Checkerなど自動チェックの限界
  • 検証環境で試す手順と、自分で進める範囲と頼む範囲

WordPressのプラグインがPHP 8に対応しているかを確認するには、サイトヘルスで使っているものを一覧にし、配布ページの最終更新日と注意書きを見て、自動チェックは参考にとどめ、最後に検証環境で実際に動かす、の4つを順に進めます。配布ページの「Requires PHP」は動く最低のバージョンで、PHP 8で動く保証ではありません。この記事では、一覧の作り方、更新が止まっているプラグインとテーマの見分け方、検証環境で試してから切り替える手順、自分で進める範囲と頼んだ方がよい範囲を、作る側の目線で説明します。

WordPressのプラグインがPHP 8に対応しているか確認する4つの方法

PHP は WordPress を動かしているプログラムの言語です。PHP 8.0 では、古い書き方の一部が使えなくなりました。たとえば each() や create_function() という関数は削除され、文字列と数値の比べ方も変わっています(出典: PHP マニュアル「下位互換性のない変更点」)。古いまま更新されていないプラグインやテーマにこうした書き方が残っていると、PHP を上げたとたんにエラーで止まることがあります。

図解・流れプラグインのPHP 8対応を確認する順番
  1. STEP01一覧を作るサイトヘルスで、使っているプラグインとテーマを書き出す
  2. STEP02配布ページを見る最終更新日、注意書き、変更履歴を確かめる
  3. STEP03自動チェックツールの結果は当たりをつける材料にとどめる
  4. STEP04検証環境で試す本番のコピーで PHP を上げ、実際に動くかを見る

手元で分かることから順に確かめ、最後は検証環境で実際に動かして判断します。

4つの方法で分かることと分からないこと
方法分かること分からないこと
サイトヘルス使っているプラグインとテーマ、そのバージョン、今の PHP新しい PHP で動くかどうか
配布ページ更新が続いているか、動く最低の PHP、変更履歴自分のサイトの組み合わせで動くか
自動チェック問題のありそうな書き方の場所動かしたときに起きる問題。誤検知もある
検証環境実際に画面が出るか、フォームが送れるか確かめなかったページや機能のこと

WordPress 本体がどの PHP に対応しているかは、本体のバージョンごとの対応表が公式に公開されています(出典: Make WordPress Core「PHP Compatibility and WordPress Versions」)。本体が対応していても、プラグインとテーマは作った人がそれぞれ対応させるものなので、別に確かめる必要があります。

PHP を上げる理由や、使える期限の考え方はPHP 8.1のサポート終了でやることで、ホームページの更新作業の全体はホームページの更新方法で説明しています。

サイトヘルスで今の環境とプラグインの一覧を書き出す

最初に、何を確かめるのかをはっきりさせます。WordPress の管理画面の「ツール」の「サイトヘルス」には「ステータス」と「情報」の2つのタブがあり、「情報」のタブでは、有効なテーマと停止中のテーマ、有効なプラグインと停止中のプラグインの名前、バージョン、作者、自動更新の設定、サーバーの情報が見られます(出典: WordPress.org「Site Health screen」)。

  1. 管理画面の「ツール」から「サイトヘルス」を開く
  2. 「ステータス」のタブで、PHP が古いという警告や、更新待ちのプラグインの表示がないかを見る
  3. 「情報」のタブの「サーバー」で、今の PHP のバージョンを控える
  4. 「有効なテーマ」で、テーマの名前と親テーマ(子テーマを使っている場合)を控える
  5. 「有効なプラグイン」と「停止中のプラグイン」を開き、名前とバージョンを書き出す
  6. 「サイト情報をクリップボードにコピー」を使い、表計算ソフトやメモに貼り付けて残す
一覧に書き足しておくと後で迷わない項目
書き足す項目書き方の例あとで使う場面
入手先配布ページ、有料で購入、制作会社が作成どこで対応状況を確かめるかを決める
何のために入れたか問い合わせフォーム、予約、画像の圧縮替えるときに、同じ役目のものを探す
最終更新日配布ページで見た日付更新が止まっているかを判断する
確かめた結果問題なし、要更新、要交換検証環境で試す順番を決める

使っていないプラグインとテーマは減らしておく

停止中のプラグインや使っていないテーマも、ファイルはサーバーに残っています。WordPress の公式ドキュメントでも、使う予定のないテーマは削除するよう勧めています。この機会に、使っていないものを消せるかどうかも一覧で判断しておくと、確かめる数が減ります。

今の PHP のバージョンの見方や、脆弱性の話も含めた進め方はPHPの脆弱性にWordPressで対応する手順にまとめています。

プラグインの配布ページでPHP 8対応を確認する見方

一覧ができたら、プラグインごとに WordPress.org の配布ページを開きます。日本語の配布ページでは、右側に「バージョン」「最終更新日」「有効インストール数」「WordPress バージョン」「PHP バージョン」などの欄が並び、本文の「開発」の下に「変更履歴」があります。

配布ページの欄と、見るときの注意
欄意味見るときの注意
PHP バージョン(Requires PHP)動かすのに必要な最低の PHP上限ではない。PHP 8 で動く保証にはならない
検証済みの WordPress のバージョン(Tested up to)作者が試した WordPress 本体のバージョンPHP の対応を示す欄ではない
最終更新日最後に新しい版が出た時期長く止まっていれば、新しい PHP で試されていないかもしれない
変更履歴版ごとの直したことPHP 8 への対応や警告の修正が書かれていることがある

Requires PHPは「この版より新しいPHPが必要」という下限

プラグインの説明書きの決まりでは、Requires PHP は「このプラグインを使うのに必要な最低の PHP のバージョン」とされています(出典: WordPress Plugin Handbook「How Your Readme.txt Works」)。「7.4」と書かれていれば、7.4 より古い PHP では動かないという意味で、8.x で動くという意味ではありません。ここを読み違えて PHP を上げ、表示が止まる例は少なくありません。

変更履歴で「PHP 8」の対応を探す

変更履歴に「PHP 8.x compatibility」のような記載があれば、作者がその PHP で動くように直したという手がかりになります。ブラウザのページ内検索で「PHP」と入れると見つけやすくなります。記載がなくても動くことはありますが、その場合は検証環境で試すまで判断を保留します。

有料プラグインや配布ページのないプラグイン

有料で購入したプラグインは、販売元の公式サイトにある対応環境の説明や更新履歴を見ます。ライセンスの期限が切れていると、管理画面に新しい版が出てこないこともあるので、購入した時のアカウントに入れるかも確かめておきます。

更新が止まっているプラグインの見分け方と代わりの探し方

PHP を上げるときに一番手間がかかるのは、更新が止まっているプラグインです。作者が直していないので、新しい PHP で問題が起きても、待っていて直る見込みが小さいからです。配布ページには、直近の3つのメジャーリリースの WordPress で検証されていないという注意書きが出ることがあり、これも手がかりになります。

更新が止まっているプラグインがないかを、印刷した一覧に印をつけながらノートパソコンで確かめる店主のイラスト
一覧に「最終更新日」と「注意書きの有無」を書き足すと、どのプラグインから手をつけるかが見えてきます。

更新が止まっている可能性が高いプラグインの目安

  • 最終更新日から長い期間、新しい版が出ていない
  • 直近の WordPress で検証されていないという注意書きが出ている
  • 配布ページに、配布の停止や開発の終了を知らせる表示がある
  • サポートフォーラムで、PHP 8 でのエラーの報告に返事がない
  • 配布ページが見つからず、入手先も分からない

代わりのプラグインに替えるときの順番

  1. そのプラグインが何をしているかを、実際の画面で確かめる(フォーム、表示の部品、裏の処理など)
  2. 同じ役目で、更新が続いているプラグインを配布ページで探す
  3. 検証環境で入れ替え、設定とデータが引き継げるかを確かめる
  4. 本番で入れ替え、古いプラグインを停止してから削除する

作る側として見ていると、入れた人が理由を覚えていないプラグインが残っていることがよくあります。中には、ほかのプラグインや本体の機能で同じことができるようになっていて、外しても困らないものもあります。替える前に「本当に要るか」を一度考えると、作業が減ります。

入れ替えると設定が移らないことがある

問い合わせフォームや予約のプラグインは、送られた内容の保存先や、メールの送り先の設定がプラグインごとに違います。入れ替えた後に、テスト送信をしてメールが届くかまで確かめてください。

テーマのPHP 8対応を確かめる、無料・有料・作ってもらったテーマ別

見た目を決めるテーマも PHP で動いているので、プラグインと同じように確かめます。テーマは入手した経路によって、確かめる場所が変わります。

テーマの種類ごとの確かめ方
テーマの種類確かめる場所注意すること
WordPress.org の無料テーマテーマの配布ページの最終更新日と、必要な PHP の表示プラグインと同じく、PHP の表示は下限
有料で購入したテーマ販売元の公式サイトの対応環境と更新履歴ライセンスが切れていると、新しい版を受け取れないことがある
制作会社が作ったオリジナルのテーマ作った会社に、対応しているかを問い合わせる配布ページがなく、自動チェックでも調べられない
子テーマ親テーマの対応と、子テーマに書き足したコード親テーマが対応していても、書き足した部分は別

functions.php に書き足したコードも対象になる

テーマの functions.php というファイルに、以前の担当者が機能を書き足していることがあります。テーマ自体は新しい版に対応していても、書き足したコードが古い書き方のままだと、そこでエラーが出ます。子テーマを使っている場合は、サイトヘルスの「有効なテーマ」で親テーマの名前が分かります。

オリジナルのテーマを作った会社と連絡が取れないときは、ホームページの制作会社と連絡が取れず更新できないときの進め方を先に読んでください。テーマが古く、直すより作り直した方がよいと分かった場合は、ホームページリニューアルの進め方が参考になります。

PHP Compatibility Checkerで分かることと限界

プラグインとテーマのコードを自動で調べる道具として知られているのが、WP Engine が配布している PHP Compatibility Checker です。配布ページの説明では、インストールしたテーマとプラグインのコードを調べ、問題のありそうな書き方をファイルと行の番号つきで示すとされています(出典: WordPress.org プラグインディレクトリ「PHP Compatibility Checker」)。

一方で、同じ配布ページでは、このプラグインはもう開発が続けられておらず、セキュリティのための更新も含めて新しい版は出ないと案内されています。使う前に、配布ページで今の状態を確かめてください(PHP Compatibility Checker の公式の配布ページで確認)。

  • WordPress.org で配布されているプラグインとテーマしか調べられない(有料のものや、制作会社が作ったテーマは対象外)
  • コードを動かさずに読むだけなので、実際に動かしたときに起きる問題は分からない
  • 古い PHP のために残してある使われない部分を、問題として表示する誤検知がある
  • 配布ページの説明で確認の対象とされているのは PHP 8.0 まで

開発が終わったプラグインを本番に入れたままにしない

更新が出ないプラグインは、それ自体が「更新が止まっているプラグイン」です。使うとしても検証環境だけにして、結果を見たら削除しておくと安心です。配布ページ自身も、結果を完全には当てにせず、PHP を切り替える前に十分に試すよう勧めています。

自動チェックの結果の使い方

結果は「どのプラグインを先に疑うか」の順番づけに使います。問題が出たプラグインは新しい版があるかを配布ページで見て、なければ代わりを探します。何も出なかったプラグインも、検証環境で動かすまでは対応済みとは扱わないでください。

検証環境で新しいPHPを試してから切り替える手順

検証環境(ステージングとも呼ばれる)は、本番のホームページをそっくりコピーした、お客様からは見えない試しの場所です。レンタルサーバーによっては、管理画面からコピーを作る機能があります。ここで先に PHP を上げて、表示と機能を確かめてから本番を切り替えます。

検証環境と本番のWordPressを2台のノートパソコンで見比べ、プラグインの動きを確認する男性のイラスト
本番のコピーで先に PHP を上げ、同じページを見比べると、どのプラグインで問題が出るかを落ち着いて確かめられます。
  1. 本番のファイルとデータベースのバックアップを取る
  2. 検証環境に本番をコピーする
  3. 検証環境の PHP を目標のバージョンに切り替える
  4. 検証環境で、エラーの記録(WP_DEBUG_LOG)を有効にする
  5. 下のチェック項目に沿って、表示と機能を確かめる
  6. 問題が出たプラグインやテーマを、更新するか替える
  7. 本番で PHP を切り替え、同じ項目をもう一度確かめる

WP_DEBUG_LOG を有効にすると、エラーや警告が wp-content の中の debug.log というファイルに記録されます。WordPress の公式ドキュメントは、こうしたデバッグの道具を本番のサイトで使うことは勧めないとしています(出典: WordPress Developer Resources「Debugging in WordPress」)。記録は検証環境で取り、本番では有効にしたままにしないでください。

検証環境で確かめる項目

  • トップページと主なページが、崩れずに表示される
  • 問い合わせフォームや予約のフォームから送信でき、メールが届く
  • 管理画面に入れて、投稿の編集と保存ができる
  • お知らせやブログの一覧と、個別の記事が開ける
  • スマホの幅で見ても表示が崩れない
  • debug.log に、プラグインやテーマの名前を含むエラーが出ていない

サーバーごとの PHP の切り替え場所はレンタルサーバーのPHPバージョン変更の手順にまとめています。切り替えた後に画面が出なくなったらPHPを更新してサイトが真っ白になったときの戻し方を、エラーの画面が出たらWordPressの「重大なエラーが発生しました」の原因と直し方を見てください。

プラグインのPHP 8対応確認を自分で進める範囲と頼む範囲

ここまでの作業のうち、一覧づくりと配布ページの確認は、管理画面に入れれば自分で進められます。検証環境での確認から先は、サーバーの操作やコードを読む作業が入るので、慣れていないと時間がかかります。

図解・比較PHP 8対応の確認、自分で進めやすい作業と頼んだ方がよい作業

自分で進めやすい

  • サイトヘルスでプラグインとテーマを一覧にする
  • 配布ページで最終更新日と注意書きを見る
  • 使っていないプラグインを停止して削除する
  • プラグインとテーマを新しい版に更新する

頼んだ方がよい

  • 検証環境を作って PHP を切り替える
  • エラーの記録を読んで原因のプラグインを特定する
  • オリジナルのテーマや functions.php を直す
  • 更新が止まったプラグインを、データを移して替える

一覧と配布ページの確認までは自分で進め、検証環境やコードの手直しが要る段階から頼むと、相談もしやすくなります。

頼む先は、まず作った会社です。連絡が取れない場合や、PHP の更新を受けていない場合は、PHPアップデートの依頼を受けている会社やフリーランスに相談します。継続して保守を頼むときの費用の考え方はホームページの維持費の内訳で説明しています。

頼む前にまとめておくこと

  • ホームページの URL
  • サイトヘルスで書き出したプラグインとテーマの一覧
  • 今の PHP のバージョンと、上げたいバージョン
  • 契約しているレンタルサーバーと、管理画面にログインできるか
  • 有料のプラグインやテーマの購入時のアカウント
  • すでに試してエラーが出た場合は、その画面の内容

PHPを上げる前のプラグインとテーマの確認、最初にやること

最後に、PHP を上げる前の動き方を短くまとめます。

  1. サイトヘルスで、今の PHP と、プラグインとテーマの一覧を書き出す
  2. 使っていないプラグインとテーマを減らす
  3. 配布ページで最終更新日、注意書き、変更履歴を見て、更新が止まっているものに印をつける
  4. 新しい版があるものは更新し、止まっているものは代わりを探す
  5. 検証環境で PHP を上げて動きを確かめてから、本番を切り替える

Requires PHP の表示や自動チェックの結果だけで「対応済み」と判断しないことが、切り替えでの事故を防ぐ近道です。手間はかかりますが、一覧を一度作っておけば、次に PHP を上げるときにもそのまま使えます。

uparia の月額プラン(制作費0円・月額2,980円から・最低契約期間12か月)には、独自ドメイン、サーバー、SSL、保守が含まれます。買い切りで作ったサイトやほかの会社で作ったホームページは、月額保守(月5,000円、最低契約期間なし)で、更新代行やドメインとサーバーの管理、障害への対応をお受けします。PHP を上げる前の確認は、PHPアップデートの依頼からご相談いただけます。

よくある質問

PHPを上げると、すべてのプラグインが動かなくなるのですか?

すべてが動かなくなるわけではありません。更新が続いているプラグインの多くは、作者が新しい PHP に合わせて直しています。問題が出やすいのは、長く更新されていないものや、古い書き方が残っているものです。どれが当てはまるかは、一覧を作って配布ページと検証環境で確かめると分かります。

管理画面に「更新があります」と出ているプラグインは、先に更新した方がよいですか?

多くの場合、PHP を上げる前に新しい版へ更新しておく方が、新しい PHP で動く見込みが高くなります。ただし、更新でも表示が変わることがあるので、バックアップを取ってから、できれば検証環境で更新と PHP の切り替えを一緒に試してください。

配布ページの「PHP バージョン」が空欄のプラグインはどう判断すればよいですか?

この欄は作者が書くかどうかを選べる項目なので、空欄でも動かないとは限りません。最終更新日が新しく、変更履歴で更新が続いているかを見たうえで、検証環境で実際に動かして判断します。

PHP 8で動かないプラグインが見つかったら、PHPを上げるのをやめた方がよいですか?

古い PHP は、サポートが終わるとセキュリティの修正が出なくなります。PHP を据え置くより、動かないプラグインを新しい版に更新するか、同じ役目の別のプラグインに替えて、PHP を上げる方向で考えるのが基本です。替えられない事情があれば、作った会社や保守の依頼先に相談してください。

検証環境を作れないレンタルサーバーでは、どうすればよいですか?

コピーの機能がない場合は、別のサーバーやパソコンの中に本番のコピーを作る方法があります。手間がかかるので、難しければ、本番のバックアップを取り、すぐに元の PHP に戻せる状態を確かめたうえで、お客様の少ない時間帯に切り替えて確認する方法もあります。

CONTACT

まず資料で確かめるか、相談して決めるか。

料金プランと制作の流れは資料にまとめています。
自分の場合はどうなるかを知りたいときは、無料相談でお聞かせください。

contact@uparia.com