【WordPress】プラグイン「PHP Compatibility Checker」でPHP互換性チェックをしてみました

20170521_08
Pocket

ご存知の方も多いとは思いますがWordPressのプログラムはPHPで書かれています。

そのため、テーマの機能もPHPで書かれていますし、プラグインもPHPで書かれています。

PHP自体にもバージョンがありバージョンアップで機能追加などがなされます。

PHPのバージョンアップをする際にテーマやプラグインが対応していないとエラーで動作がしなかったりサイト自体が表示されなくなることもありえます。

今回は、テーマやプラグインのPHP互換性チェックのためにプラグイン「PHP Compatibility Checker」でチェックを行ってみました!



 

PHP5からPHP7にバージョンアップしたかった

WordPress高速化のためにプログラム自体の実行速度が速くなればいいな・・・と思っていました。

色々調べていると、現在だと多くのレンタルサーバでPHP7がサポートされるようになっていて、PHP7はPHP5に比べて実行処理速度が大幅に改善されているためにWordPress高速化に繋がると!(※レンタルサーバでPHP5.6を選択して使っていました。)

 

これでWordPress管理画面のもっさり感ともおさらばできるのか??と心が躍りました!

ただ、気になるのはWordPress本体はバージョン4.4からPHP7に対応しているとのことですが、テーマやプラグインはどうなのかと。

PHP7にしたら不具合が出て泣きを見るのはイヤだったため、PHP互換性チェックができるプラグイン「PHP Compatibility Checker」を使ってPHP互換性チェックを行いました。

 

プラグイン「PHP Compatibility Checker」の使い方

まずは「WordPress管理画面」⇒「プラグイン」⇒「新規追加」からキーワード「PHP Compatibility Checker」で検索します。

 

20170521_01

 

検索して出てきたこのプラグインをインストールします。

 

20170521_02

 

プラグインのインストールが終わったら、「ツール」に「PHP Compatibility」という項目が追加されているので、これをクリックします。

 

20170521_03

 

チェックするPHPの対象バージョンとチェック対象を選択してチェックができます。チェック対象は英語表示ですが、以下の意味合いです。

  • Only scan active plugins and themes ⇒ 「有効化されているプラグインとテーマだけチェックする」
  • Scan all plugins and themes ⇒ 「全てのプラグインとテーマをチェックする」

 

まずはPHP5.6で全てのプラグインとテーマをチェックしてみます

では、PHP7.0でチェックしましょうか・・・としたいところですが、まずは念のため現在のPHP5.6にすら実は対応していなかったプラグインとテーマがある可能性もあるため、まずはPHP5.6で全てのプラグインとテーマをチェックしてみます。

 

20170521_04

 

プラグインとテーマを合わせて約40個ほどインストールしていましたが、5分ほどで全てのチェックが終わりました。

チェックの結果はすべてずら~っとリスト表示されました。

いくつか警告が出ているプラグインが見つかりましたが、「Unknown」と出て上手くチェックができなかったとみられるもの(All In One SEO Pack , Dynamic To Top が「Unknown」と出ました。)以外は互換性があると出ました。

 

20170523_05

 

右上の「View results as raw text」のチェックボックスにチェックを入れると、どのような警告が出ているかをテキスト表示で確認できます。

 

PHP7.0で互換性チェックをしてみます

それでは、PHP7.0で互換性チェックをしてみます。

 

20170521_06

 

いくつかエラーが出るプラグインがありました。どんなエラーが出ているのかを見てみます。

以下は、「Download Manager」というプラグインで出ていたエラーです。

 

「Extension ‘ereg’ is deprecated since PHP 5.3 and removed since PHP 7.0 – use pcre instead.」

「ereg」関数はPHP5.3以降で廃止され、PHP 7.0以降に削除されました代わりに「pcre」関数を使用してください。という意味合いですね。

非推奨になって削除された関数がコードに含まれているようです。

 

「Function eregi() is deprecated since PHP 5.3 and removed since PHP 7.0; use preg_match instead」

「eregi」関数はPHP5.3以降で廃止され、PHP 7.0以降に削除されました代わりに「preg_match」関数を使用してください。という意味合いですね。

上記と同様に非推奨になって削除された関数がコードに含まれているようです。

 

非推奨になって削除された関数がコードに含まれているということは、プラグイン自体が動作しない可能性がありますね。

このようなプラグインがあったら、使っていないプラグインであれば削除し、使いたいプラグインの場合は停止にしておいてPHP7.0にバージョンアップした時に動作すると確認してみるといいでしょうね。(ただ、削除された関数がコードに含まれている時点で正常に動作しない可能性が高いため、代替えで他のプラグインを使うか、削除した方だいいでしょう。)

 

ただ、先にやっておけばよかったんですがプラグインを最新のバージョンにしていなかったため、一旦プラグインを最新のバージョンにしてみてから再びPHP7.0の互換性チェックをしてみます。

 

プラグインを最新のバージョンにして再度PHP7.0の互換性チェックをしました

20170521_07

 

「Download Manager」というプラグインで出ていたエラーはプラグインのバージョンアップで解消されてましたね。

「Facebook」、「Tweetily」はどちらも最終更新が3年以上前ですね。現在は使ってはいなかったんですが、有用なプラグインではあったんですけどね。

いつ更新されるかもわからないため、削除することにしました。

 

ちなみに、「Unknown」となっていた「All In One SEO Pack」はプラグインのページにてPHP7と互換性があると明記されており、「Dynamic To Top」はプラグインのページにて最終更新が5ヵ月前でWordPress4.7.5(現在の最新バージョン)でも動作が検証されていると明記されているため、問題ないだろうと判断しました。

これにて、PHP7.0の互換性チェックが完了しました。あまり手間がかからずに済んだため、良かったです。ついでに無駄なプラグインも削除するきっかけにもなりました。

 

あとがき

今回PHPの互換性チェックをした情報を元に、レンタルサーバの設定でPHP5.6(モジュール版)⇒PHP7.1(CGI版)にバージョンアップしました!

特にサイトの動作は問題がなく、GoogleのPageSpeed Insightsで調べたサーバーの応答時間は1.4秒⇒1.1秒(何度か測定しましたがこの前後の値)と、やはり処理が早くなったようです。

WordPress管理画面の動作に関しては・・・心なしか若干早くはなったか??と思える程度という感じではありますが。

 
 



Pocket

コメントを残す

メールアドレスが公開されることはありません。