VS CodeでWordPress-Coding-Standardsのルールで自動フォーマットする方法

目次
  1. Composer経由でインストール
    1. インストールされているルールの確認
  2. phpcsでエラーチェック
  3. ルールを定義してチェックする方法
  4. VS Codeで自動フォーマットする
  5. Windowsで使うときの注意点
    1. Composerは公式のインストーラーで入れる
    2. コマンドとVS Codeの設定は「.bat」を使う
    3. 改行コードをLFにそろえる

前提として「Composer」「Node.js」を自分のパソコンにインストールしておきます。

また、プロジェクトに必要なツールとしては 、「PHP_CodeSniffer」「WordPress/WordPress-Coding-Standards」です。

さらに、VS Codeで活用するために、「PHP Sniffer & Beautifier – Visual Studio Marketplace」を入れていきます。

では順番に見ていきましょう。

Composer経由でインストール

squizlabs/php_codesnifferをインストール。

composer require --dev squizlabs/php_codesniffer

wp-coding-standards/wpcsをインストール

composer require --dev wp-coding-standards/wpcs

dealerdirect/phpcodesniffer-composer-installerをインストールしてもいいか?と聞かれるのでyを選択。

dealerdirect/phpcodesniffer-composer-installer contains a Composer plugin which is currently not in your allow-plugins config. See https://getcomposer.org/allow-plugins
Do you trust "dealerdirect/phpcodesniffer-composer-installer" to exit now? (writes "allow-plugins" to composer.json) [y,n,d,?] 

インストールできると以下のファイルが出来上がります。

  • vendor
  • composer.json
  • composer.lock

composer.jsonの中身は以下のとおりです(2025年1月時点)

{
    "require-dev": {
        "squizlabs/php_codesniffer": "^3.11",
        "wp-coding-standards/wpcs": "^3.1"
    },
    "config": {
        "allow-plugins": {
            "dealerdirect/phpcodesniffer-composer-installer": true
        }
    }
}

インストールされているルールの確認

様々なコーディングのルールがインストールされているはずです。以下のコマンドで確認しましょう。

./vendor/bin/phpcs -i

WordPressの「WordPress」「WordPress-Core」「WordPress-Docs」「WordPress-Extra」が入っていることが分かります。

The installed coding standards are MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, Modernize, NormalizedArrays, Universal, PHPCSUtils, WordPress, WordPress-Core, WordPress-Docs and WordPress-Extra

もしWordPressのルールが追加されていない場合は以下のコマンドで追加する。

./vendor/bin/phpcs --config-set installed_paths ./vendor/wp-coding-standards/wpcs

phpcsでエラーチェック

phpcsコマンドを使ってWordPress-Coding-Standardsのルールを使ってコードのエラーチェックが可能になりました。

特定のファイルを対象にする場合は、ファイルへのパスを記載します。

./vendor/bin/phpcs ./functions.php

ディレクトリ配下のファイルを全て対象にする場合は、ディレクトリを指定します。

./vendor/bin/phpcs ./template-parts

ルールを定義してチェックする方法

さらに.phpcs.xmlファイルを追加するとルールを定義することができます。例えば、WordPress-DocsやWordPress-Extraなどを使わずに、WordPress-Coreだけを使う場合は以下のように記載します。また、ルールの中でもexcludeのように細かく指定することも可能です。

<?xml version="1.0"?>
<ruleset name="WordPress Coding Standards">
	<rule ref="WordPress-Core">
		<!-- <exclude name="Generic.Files.EndFileNewline.NotFound"/> -->
		<!-- <exclude name="Generic.Arrays.DisallowShortArraySyntax.Found"/> -->
	</rule>
	<arg name="extensions" value="php"/>
</ruleset>

定義したルールを活用する場合は、以下のように--standardオプションに定義したファイルまでのパスを記載します。

./vendor/bin/phpcs --standard=./.phpcs.xml ./functions.php

VS Codeで自動フォーマットする

続いては、VS Codeで自動フォーマットしていきましょう。「PHP Sniffer & Beautifier – Visual Studio Marketplace」をインストールします。

プロジェクトに.vscode/settings.jsonを追加して設定を追加していきましょう。少し長いですが、以下のような設定になります。

{
	"[php]": {
		"editor.defaultFormatter": "valeryanm.vscode-phpsab",
		"editor.formatOnSave": true
	},
	"phpsab.fixerEnable": true,
	"phpsab.executablePathCS": "./vendor/bin/phpcs",
	"phpsab.executablePathCBF": "./vendor/bin/phpcbf",
	"phpsab.snifferShowSources": true,
	"phpsab.snifferMode": "onSave",
	"phpsab.allowedAutoRulesets": [
		"./.phpcs.xml",
	],
	"phpsab.standard": "./.phpcs.xml",
}
editor.defaultFormatterフォーマットのルールとしてvaleryanm.vscode-phpsabを活用する
editor.formatOnSave保存時に自動でフォーマットする
phpsab.fixerEnable修正も含める
phpsab.executablePathCSチェック用のパス
phpsab.executablePathCBF修正用のパス
phpsab.snifferShowSources問題が起きた時にソースも表示する
phpsab.snifferMode保存時に実行する
phpsab.allowedAutoRulesets読み込むルールのパス
phpsab.standard標準で使うルールへのパス

VS Codeを再起動してください。保存時にルールに沿ってフォーマットされることが確認できます。

Windowsで使うときの注意点

ここまではMacの画面で進めてきました。Windowsで同じことをする場合は、次の3点が変わります。

Composerは公式のインストーラーで入れる

Windowsでは、Composerの公式サイトにある「Composer-Setup.exe」を使うのが簡単です。インストーラーがパスを設定してくれるので、どのフォルダからでもcomposerコマンドが使えるようになります。ComposerはPHPで動くので、先にPHP(XAMPPなど)を入れておいてください。
→ Composer(公式のダウンロードページ)

コマンドとVS Codeの設定は「.bat」を使う

コマンドプロンプトでは、パスの区切りを「\」にして実行します。

vendor\bin\phpcs -i

Composerでインストールすると、vendor/binの中にWindows用のphpcs.batとphpcbf.batもできます。.vscode/settings.jsonでは、こちらを指定します。

"phpsab.executablePathCS": "./vendor/bin/phpcs.bat",
"phpsab.executablePathCBF": "./vendor/bin/phpcbf.bat",

改行コードをLFにそろえる

WordPressのコーディング規約では、改行コードはLFと決まっています。Windowsで作ったファイルはCRLFになりやすく、そのままだとphpcsで次のエラーがたくさん出ます。

End of line character is invalid; expected "\n" but found "\r\n"

.vscode/settings.jsonに次の1行を足しておくと、新しく作るファイルがLFになります。すでにあるファイルは、VS Codeの右下に出ている「CRLF」をクリックして「LF」に切り替えてから保存してください。

"files.eol": "\n",

WordPressでお悩みの方はお気軽にご相談ください。

ちょっとしたお困り事からサイト全体のリニューアルのようなご依頼まで、お悩みに応じて柔軟に対応いたします。

この記事を書いた人

はにわまん

HPcode代表。300件以上のWordPress案件を対応してきました。ちょっとしたWordPressのカスタマイズからブロックテーマでのリニューアルまで。更新できるWordPressサイトが好きです。