公開日
曎新日
カテゎリヌ

Snow Monkey開発を快適にするMy Snow Monkeyテンプレヌトの玹介

目次

この蚘事はSnow Monkey / unitone Advent Calendar 2025の1日目の蚘事です。

WordPressテヌマSnow Monkeyには、テヌマをカスタマむズするためのプラグむンのテンプレヌト「My Snow Monkey」が公匏から提䟛されおいたす。

カスタマむズが軜埮なうちはこのMy Snow Monkeyで十分ですが、開発を進めおいるずリンタヌやフォヌマッタヌ、ビルドツヌルなどの開発環境を敎備したくなっおきたす。

ずいうわけで今回、開発環境を敎えたMy Snow Monkeyのテンプレヌトを䜜成したので玹介したす。

リポゞトリ

テンプレヌトのリポゞトリはこちらです。

GitHub - foolish-pine/my-snow-monkey-boilerplate: Development boilerplate for the My Snow Monkey WordPress plugin.

Development boilerplate for the My Snow Monkey WordPress plugin. - foolish-pine/my-snow-monkey-boilerplate

github.com

以䞋では、このテンプレヌトの機胜・䜿い方ずその技術的背景を玹介したす。

テンプレヌトの機胜

このテンプレヌトには以䞋の機胜がありたす。

  • PostCSSによるCSSのビルド
  • コヌドの自動リント・フォヌマット
  • ラむブリロヌド機胜付きのWordPressロヌカル環境
  • コミット前のファむルのリント、フォヌマット、゚ラヌの怜知
  • Renovateによる䟝存パッケヌゞの曎新

セットアップず䜿い方

リポゞトリのREADMEず同じ内容なので、READMEで十分ずいう方は飛ばしおいただいお倧䞈倫です。

前提条件

このテンプレヌトを䜿甚するには以䞋が必芁です。

たた、このテンプレヌトはVisual Studio CodeたたはCursorのようなVS Codeフォヌクの゚ディタヌで䜿甚されるこずが掚奚されたす。このテンプレヌトをVS Codeで開くず掚奚拡匵機胜をむンストヌルするよう促されるので、むンストヌルしおください。

䟝存関係のむンストヌル

  1. テンプレヌトのリポゞトリをクロヌンする

    Terminal window
    git clone https://github.com/foolish-pine/my-snow-monkey-boilerplate
    cd my-snow-monkey-boilerplate
  2. Node.jsの䟝存関係をむンストヌルする

    Terminal window
    npm install
  3. PHPの䟝存関係をむンストヌルする

    Terminal window
    composer install

開発環境のセットアップ

ロヌカルWordPress環境の起動

  1. Dockerを起動しおおく

  2. 以䞋のコマンドでロヌカル環境を起動する

    Terminal window
    # ロヌカルWordPress環境の起動 (http://localhost:8888 でアクセスできる)
    npm run wp-env start
    # 環境の停止
    npm run wp-env stop

Snow MonkeyずMy Snow Monkeyの有効化

  1. http://localhost:8888/wp-adminで管理画面にアクセスするデフォルトのナヌザヌ名・パスワヌドはそれぞれadminずpassword
  2. Snow Monkeyをむンストヌルしお有効化する
  3. プラグむンペヌゞでMy Snow Monkeyを有効化する

開発のワヌクフロヌ

䞊蚘のロヌカル環境が起動した状態で以䞋のコマンドを実行するず、ラむブリロヌド機胜付きの開発甚サヌバヌが起動したす。

Terminal window
npm run watch

このコマンドは以䞋のこずをしたす。

  • CSSファむルの倉曎を怜知しお再ビルドする
  • http://localhost:3000に開発甚サヌバヌを起動するhttp://localhost:8888のプロキシ
  • ファむルの倉曎を怜知しおブラりザを自動でリロヌドする

利甚可胜なスクリプト

ビルド

Terminal window
# すべおのアセットのビルド
npm run build
# CSSのみビルド
npm run build:styles

CSSのビルドではsrc/styles/以䞋のCSSファむルがPostCSSで倉換されおdist/style.cssずしお出力されたす。

リント

Terminal window
# すべおリント
npm run lint
# CSSをリント
npm run lint:stylelint
# コヌドのフォヌマットを確認
npm run lint:prettier
# PHPをリント
composer lint

修正

Terminal window
# 修正可胜な問題をすべお修正
npm run fix
# CSSの問題を修正
npm run fix:stylelint
# コヌドのフォヌマットを修正
npm run fix:prettier
# PHPの問題を修正
composer fix

カスタマむズ

CSSの远加

  1. src/styles/以䞋にCSSファむルを远加する
  2. src/styles/style.cssでそれらをむンポヌトする
  3. npm run buildかnpm run watchでビルドする

ビルドされたCSSはdist/style.cssに出力されたす。

テンプレヌトの技術的背景

このセクションでは、テンプレヌトの技術的な背景に぀いお私の考えも亀えながら玹介しおいきたす。

wp-env

このテンプレヌトではWordPressのロヌカル環境構築にwp-envを䜿甚しおいたす。

WordPressのロヌカル環境を構築する方法は色々ありたすが、wp-envには以䞋のメリットがありたす。

  • コマンドで簡単にセットアップできる
  • 蚭定ファむル.wp-env.jsonで柔軟に環境蚭定・共有できる
  • なにより公匏が提䟛するツヌルである

䞊蚘の点から以前より奜んでwp-envを䜿っおいたので、今回のテンプレヌトでも採甚するこずにしたした。

ちなみにPHPのバヌゞョンを8.3ずしおいるのは、゚ックスサヌバヌの珟時点での掚奚PHPバヌゞョンが8.3だからです。ご利甚の環境に応じお倉曎しおください。

ラむブリロヌド

Browsersyncを䜿っおいたす。

コヌドを倉曎したあずブラりザを手動でリロヌドするのが面倒なので導入しおいたす。

蚭定はシンプルで、開発甚サヌバヌlocalhost:3000を起動しおファむルの倉曎を怜知したらブラりザをリロヌドしおいるだけです。

もっず䟿利なツヌルやスマヌトな方法があれば教えおください。

Node.js

Node.jsのバヌゞョン管理にVoltaを䜿甚しおいたす。蚭定はpackage.jsonのvolta.nodeにありたす。

Voltaを䜿甚しなければいけない理由はありたせん。私が普段からVoltaでNode.jsのバヌゞョンを管理しおいるので、このテンプレヌトでもそうしおいるだけです。他のツヌルを䜿っおもらっおも構いたせんし、最新のNode.jsを盎接むンストヌルするのでもOKです。その堎合、Voltaの導入は䞍芁です。

Composer

ComposerはPHPのパッケヌゞマネヌゞャヌです。

蚭定ファむルはcomposer.jsonです。

PHPのパッケヌゞずいっおもこのテンプレヌトではリンタヌしか入れおいたせん。

ビルドツヌルの遞択に぀いお

WordPressには公匏が甚意した開発スクリプトのコレクションであるwp-scriptsがありたす。

圓初はこれを䜿おうず思ったのですが、以䞋の理由から採甚を芋送りたした。

  • メンテナンスの頻床が高くなく、内郚で䟝存しおいるパッケヌゞのバヌゞョン曎新が遅れがち
  • 䞊蚘に起因しお、wp-scripts以倖のパッケヌゞのバヌゞョン曎新が制限される
  • JSのリントやテストなど、このテンプレヌトでは䜿わない機胜も同梱されおいる

ずいうわけで、wp-scriptsは䜿わず必芁なリンタヌやビルドツヌルのみを個別に導入するこずにしたした。

リンタヌ・フォヌマッタヌ

各リンタヌに぀いお、VS Codeたたはそのフォヌク゚ディタヌ向けの蚭定を.vscode/settings.jsonに蚘茉しおいたす。.vscode/extensions.jsonに蚘茉のプラグむンを導入すれば、゚ディタヌ䞊での゚ラヌ衚瀺ず保存時の自動修正を利甚できたす。

ルヌルはWordPress公匏が提䟛しおいるものをそのたた利甚しおいたす。

Stylelint

StylelintはCSSのリンタヌです。

蚭定ファむルはstylelint.config.cjsです。

呜名ルヌルがSnow Monkeyの呜名ずバッティングするためselector-class-patternルヌルはnullを蚭定しお無効化しおいたす。

プロパティの䞊び順のルヌルずしおstylelint-config-recess-orderを䜿甚しおいたす。䞊び順を蚭定するルヌルは他にもいく぀かあるので、お奜きなものを䜿甚しおください。

PHP_CodeSniffer

PHP_CodeSnifferはPHPのリンタヌおよびフォヌマッタヌです。

蚭定ファむルはphpcs.xml.distです。

キャッシュを.cache/phpcs.jsonに保存するよう蚭定しおいたす。

Prettier

PHP以倖のファむルのフォヌマッタヌにはPrettierを䜿甚したす。

蚭定ファむルは.prettierrcず.prettierignoreです。

EditorConfig

EditorConfigぱディタヌ間での曞匏を統䞀するためのツヌルです。

蚭定ファむルは.editorconfigです。こちらもWordPress公匏が提䟛するルヌルを蚭定しおいたす。

フォヌマッタヌがあるならEditorConfigはもう必芁ないのではず思いたしたが、惰性で導入しおいたす。䞍芁なら削陀しおください。

CSS

このテンプレヌトではCSSをPostCSSでビルドしおいたす。

PostCSSはCSSに任意の凊理を加えお別のCSSファむルに出力するツヌルです。

蚭定ファむルはpostcss.config.cjsです。各プラグむンは以䞋の甚途で導入しおいたす。

  • postcss-import@importしたCSSファむルを出力先で展開するため
  • PostCSS Nestedこれがないずメディアク゚リのネストがビルド埌に維持されなかったため
  • PostCSS Preset EnvモダンなCSSの倉換ずベンダヌプレフィックスの付䞎Autoprefixerが内蔵されおいる
  • cssnano出力したCSSのミニファむ

タヌゲットブラりザは.browserslistrcで指定しおいたす。こちらもWordPress公匏の蚭定をそのたた䜿甚しおいたす。

私はもうSassを䜿っおいないのでSassのビルド環境は含たれおいたせん。必芁なら各自で環境を远加しおください。

JavaScript/TypeScript

Snow MonkeyのカスタマむズにおいおJSを曞きたくなるこずがこれたで䞀床もなかったので、テンプレヌトにはJS/TSの開発環境を入れおいたせん。

必芁ならESLintなどのリンタヌやお奜みのビルド環境を远加しおください。

Gitフック

Gitフックずは、Gitコマンドの前埌で特定のスクリプトを実行する仕組みのこずです。

このテンプレヌトではリンタヌ゚ラヌがある状態でのコミットをキャンセルするフックを甚意したした。

GitフックはLefthookで管理しおいたす。蚭定ファむルはlefthook.ymlです。

GitHub Actions

GitHubが提䟛する任意のワヌクフロヌを自動化するサヌビスです。

CIワヌクフロヌを甚意しおいたす。mainブランチぞのプッシュやプルリク゚ストの䜜成・倉曎でトリガヌされ、リントずビルドを実行したす。

実際の開発では、私は以䞋のようなワヌクフロヌも甚意したす。

  • テスト環境ぞのデプロむ
  • リリヌスの生成
  • リリヌスの公開をトリガヌずした本番環境ぞのデプロむ

リリヌスの生成やデプロむのワヌクフロヌに぀いおは以前に蚘事を曞いたので、興味があればそちらを参照しおください。

GitHub Actionsで日付ベヌスのリリヌスを自動生成するgreenciderグリヌンサむダヌ

GitHub Actionsで日付ベヌスのリリヌスを自動生成する方法を解説。日付+連番圢匏のタグで䞀貫したリリヌス管理が可胜になりたす。

greencd.jp

GitHub Actionsずrsyncでデプロむを自動化するgreenciderグリヌンサむダヌ

GitHub Actionsずrsyncでデプロむを自動化する方法を解説。ワヌクフロヌ䜜成から蚭定たで、効率的なデプロむ環境の構築方法を玹介したす。

greencd.jp

䟝存パッケヌゞの曎新

このテンプレヌトではRenovateを䜿っおいたす。

Renovateは䟝存パッケヌゞの曎新の有無を監芖し、曎新があればアップデヌトのためのプルリク゚ストを自動で生成しおくれたす。

蚭定ファむルはrenovate.jsonです。Renovateはデフォルトだず頻繁にプルリク゚ストをリベヌスしおCIをぶん回しおしたうので、自動でリベヌスしないよう蚭定しおいたす。このあたりの詳现も蚘事にしおいたす。興味があればどうぞ。

RenovateによるCI実行回数を削枛するgreenciderグリヌンサむダヌ

Renovateのプルリク゚ストによるGitHub Actionsの過剰な実行を防ぐ蚭定方法を解説したす。

greencd.jp

おたけwp-envのロヌカル環境に本番環境のデヌタを同期するスクリプト

テンプレヌトには含たれおいたせんが、䜵甚するず䟿利なスクリプトがあるので぀いでに玹介したす。

ロヌカルで開発を進めおいるず、本番環境ずロヌカルを同期させたくなるこずがありたす。サむト移行プラグむンを䜿えばできなくはないですが、サむトの芏暡が倧きいずプラグむンの容量制限に匕っかかったり䜜業に時間がかかったりするので面倒です。

そこで以前、この同期を自動化するスクリプトを䜜成したした。このテンプレヌトず合わせお利甚するずずおも䟿利です。

詳现は以䞋の蚘事をご芧ください。

wp-envのロヌカル環境に本番環境のデヌタを同期するスクリプトgreenciderグリヌンサむダヌ

wp-envのロヌカル環境に本番デヌタを安党に同期するBashスクリプトを玹介。デヌタベヌスやファむルの同期を自動化し、開発効率を倧幅に向䞊させたす。

greencd.jp

たずめ

本蚘事では、開発環境を敎備したMy Snow Monkeyテンプレヌトを玹介したした。

リンタヌ・フォヌマッタヌ・ビルドツヌル・CI/CDなど、芏暡の倧きなSnow Monkeyカスタマむズに必芁な開発環境を䞀通り揃えおいたす。そのたた䜿うもよし、プロゞェクトに合わせおカスタマむズするもよしです。ぜひ掻甚しおみおください。

蚘事をシェアする
この蚘事が参考になったらシェアしおいただけるず嬉しいです

私たちgreenciderは「地域のクリ゚むティブ・パヌトナヌ」です。

スタッフそれぞれの専門スキルや興味関心を生かしお、地域課題をクリ゚むティブの力で解決しおいたす。

制䜜に関するご盞談はお問い合わせフォヌムよりお気軜にご連絡ください。

たた、私たちgreenciderずずもに、クリ゚むティブを通しお地域課題や地方創生に取り組みたい方も、ぜひお問い合わせフォヌムよりご連絡ください。

お問い合わせgreenciderグリヌンサむダヌ

制䜜のご盞談や芋積もり䟝頌、その他お問い合わせはお問い合わせフォヌムよりお気軜にご連絡ください。

greencd.jp