本記事は広告が含まれる場合があります。
こんにちは。
いつもブログをご覧くださいまして、ありがとうございます。
前回に続き、今回も備忘録的な記事になります。
WordPress を運用されている方の中には、お使いのオリジナルテーマが、PHP 7系統までしか対応しておらず、アップデート対応が課題という方もいると思います。
理想を言えば、この機会にサイトのリニューアルをご検討いただき、デザインやコンテンツを見直すことが望ましいと言えますが、予算などの色々な事情で今は、PHP8系統への対応のみにしたいという場合もあると思います。
そのような場合の対応ですが、「PHP_CodeSnifferにPHPCompatibilityルールセットを追加して、テーマやプラグインのコードで非推奨や互換性のない記述を検出する」方法について解説します。
目次
事前準備
検証に使っている環境は、Apple M3 Pro / OS Sonoma 14.4 です。
- composer(PHPのパッケージ管理ツール)
- ターミナル(コマンドライン)が使えること
インストール手順
まず、改修対応となる、WordPress プロジェクトディレクトリに移動します。
cd /path/to/your/wordpress
次に、Composerで必要なパッケージをインストール
composer require --dev squizlabs/php_codesniffer
composer require --dev dealerdirect/phpcodesniffer-composer-installer
composer require --dev phpcompatibility/php-compatibility
チェック実行コマンド
たとえばテーマ「my-theme」をチェックしたい場合:
vendor/bin/phpcs \
--standard=PHPCompatibility \
--runtime-set testVersion 8.0-8.3 \
./wp-content/themes/my-theme/
ポイント
--standard=PHPCompatibility
… チェックルールにPHPCompatibilityを指定--runtime-set testVersion 8.0-8.3
… PHP8.0~8.3の互換性をチェック./wp-content/themes/my-theme/
… チェックしたいテーマのパス
レポート例と読み方
コマンド実行後、問題箇所がリストで表示されます。
例:
FILE: .../wp-content/themes/my-theme/functions.php
----------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
----------------------------------------------------------------------
56 | ERROR | [x] Function each() is deprecated since PHP 7.2.
----------------------------------------------------------------------
この方法を使うことで、PHP 8系で非互換なコード箇所を自動的にリストアップできます。表示されたエラーや警告を一つずつ修正していけばOKです。
お問い合わせはこちらから
南大阪を中心に活動しているシステムエンジニアです。これまでの経験から、ビジネス課題について一緒になって考え、課題解決のためにサポートさせていただきます。些細なご相談でも構いません。当方に期待することやご相談内容についてお聞かせください。