wp-envでWordPressサイトの開発環境を作った際、勝手についてくるTwentyシリーズのテーマを一括削除する

wp-envでWordPressサイトの開発環境を作った際、勝手についてくるTwentyシリーズのテーマを一括削除する

久しぶりにWordPress 日本語フォーラムで回答したら、かえって自分が勉強になってしまったTips紹介です。

先日、フォーラムでこのトピックに回答しました。

wp-envは、コマンド操作でWordPressのローカル環境をサクッと立ち上げられるツール(npmで入手できるパッケージ)です。
以下、wp-envとは何か知ってる体で書いていきます。wp-envについては WordPress.org の公式ガイドを参照ください。

@wordpress/env – Japanese Team – WordPress.org 日本語

wp-env を使用してプラグインやテーマのビルド用とテスト用の WordPre…
ja.wordpress.org

通常、初回起動時にWordPressのリポジトリから本体をダウンロードしてくるのですが、その際にダウンロードされるWordPress一式の中に、過去のデフォルトテーマが勝手についてきます。
バージョンを指定しない"core": nullの場合だとTwenty Tenから、執筆時点最新のTwenty Twenty Fiveまで全部、"core": "https://ja.wordpress.org/latest-ja.zip" で日本語版を指定した場合でも、Twenty Twenty-Two以降の4テーマが勝手に含まれてきます。

デフォルトテーマがついてくる

今まで、開発に使わないデフォルトテーマは手動でちまちま消していました。最初だけだけど地味に面倒だなー、と感じていたのですが、上述のトピック主さんも全く同じことを感じていらっしゃったようです。

やり取りの中で、颯爽と現れたトップコントリビューターの浜野さんが

もしやるなら、package.json で独自のスクリプトを組んで、Docker 起動後に wp-env run cli などで手動で任意のテーマを削除できるかもしれません。

というヒントを出してくださっていたので、せっかくなので自分でやってみようと思い、以下のスクリプトを書きました。

初回起動時、開発対象以外のテーマを全部消すコマンド

テーマ開発案件では、wp-content/themes/以下には自作のテーマ以外必要ないことがほとんどです。
そこで、初回起動時に自作テーマを有効化し、それ以外のテーマをごっそり消すようなコマンドを作りました。

ここでは、’mytheme’ というテーマを開発していくとして、白紙のindex.phpと最低限のstyle.cssが /mytheme に入っているものとします。

そこで、.wp-env.json はこのように作成します。テーマパスはご自身の環境に合わせてください。

{
  "core": "https://ja.wordpress.org/latest-ja.zip",
  "themes": [
    "./cms/wp-content/themes/mytheme"
  ],
(略)

package.json"scripts" のところに、このようなコードを追加しました。

{
  "scripts": {
    "env:init": "wp-env start && wp-env run cli wp theme activate mytheme && wp-env run cli wp theme delete --all",
(略)

このコマンドの内容を分解して解説

①wp-env環境の立ち上げ

wp-env start 

② ‘mytheme’ テーマを有効化(wp-cliを使用)

wp-env run cli wp theme activate mytheme

③有効化しているもの以外の、すべてのテーマを削除

wp-env run cli wp theme delete --all

初回起動時にコマンドを打つ

初回起動時だけ、npm run wp-env start の代わりに下記のコマンドを打ちます。

npm run env:init 

すると、latest-ja.zipに同梱されていたデフォルトテーマを削除し、自前で用意しているmythemeテーマが有効化された状態で起動します。

ポイントは記述順で、先に activate mytheme してからtheme delete –all することで、有効化しているテーマは消されないので、自作のmythemeテーマだけが残ります。

なお、スクリプトを試している段階で、先にtheme delete –all してしまい、自作テーマのファイルがごっそり消されたという失敗も書き添えておきます。

こちらの画像ではテーマディレクトリを”blank_theme”という名前でやってみたものです

2回目以降は、通常通りの起動でOKです。

これだけで、テーマのところがスッキリします。

開発対象のテーマ1つだけ残って、あとは消えた

wp-envを便利に使って、よきWordPressライフを!