WordPress オリジナルテーマのPHP8系統にアップデートする手順


本記事は広告が含まれる場合があります。

こんにちは。
いつもブログをご覧くださいまして、ありがとうございます。

前回に続き、今回も備忘録的な記事になります。
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です。

お問い合わせはこちらから

南大阪を中心に活動しているシステムエンジニアです。これまでの経験から、ビジネス課題について一緒になって考え、課題解決のためにサポートさせていただきます。些細なご相談でも構いません。当方に期待することやご相談内容についてお聞かせください。

PAGE TOP