(未解決) `wp-env`で設定ファイルをカスタマイズして走らせると`Error: Could not process the ‘wp-config.php’ transformation.`エラーが出力される

このツイートを拝見して試したくなりました。テーマやプラグインの開発ディレクトリに mappings できれば、開発がすごく捗る……というか本当これだけで良いのでは……となるので。

ちなみにwp-env自体は`.wp-env.json`を試すで一度軽く触っています。

その上で実験したところ、表題の現象に遭遇。あまり時間がなかったので色々検証する時間が取れなかったので、ひとまず起こったことを走り書きします。

環境はWindows 10Proで、Docker for Windowsを使用。Docker for Windows Desktop起動時にアップデートが来ていたのでアップデートを適用した状態です(PC自体を再起動せずに作業をしてしまったので、再起動したら直るか、というのは次回判断したい)。

プロジェクトのディレクトリ階層は以下の通り。

  /
  ├ wp/
  │  ├ package.json
  │  └ .wp-env.json
  ├ wp-content/
  │  └ themes/
  │      └ THEMENAME/
  │            ├ index.php
  │            ├ screenshot.jpg
  │            └ style.css
  └ readme.md

以下、各ファイル。

index.php

<?php

echo "Hello world!";

style.css

@charset "utf-8";

/*
Theme Name: Minimal WordPress
Author: アルム=バンド
Version: 0.0.1
*/

package.json

{
    "name": "minimal_wordpress",
    "version": "0.0.1",
    "description": "wp-env を使用した最小限の開発環境",
    "scripts": {
        "wp-env": "wp-env"
    },
    "author": "Arm Band",
    "devDependencies": {
        "@wordpress/env": "*"
    },
    "engines": {
        "node": ">= 12.0.0",
        "npm": ">= 6.0.0"
    }
}

.wp-env.json

{
    "core": "https://ja.wordpress.org/latest-ja.zip",
    "plugins": [
        "https://downloads.wordpress.org/plugin/wp-multibyte-patch.2.8.4.zip"
    ],
    "mappings": {
        "wp-content/themes/minimal_wordpress": "../wp-content/themes/minimal_wordpress"
    }
}

これで以下のようにコマンドを走らせます。

> yarn
> wp-env start

すると、以下のようなエラーが出力されました。

wp-env start

× Error while running docker-compose command.

Starting XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_mysql_1 … done

Starting XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_wordpress_1 … done

Error: Could not process the ‘wp-config.php’ transformation.

Reason: Unable to locate placement anchor.

原因が分からなかったので.wp-env.jsonを最小限までそぎ落として実験。

{
    "core": "https://ja.wordpress.org/latest-ja.zip"
}

これでも直りませんでした。

ちなみに

{
    "core": null
}

だとエラーが起きませんでした。

仕方ないので、異なるディレクトリを切って同じファイルを用意し、もう一度トライ。

これは何度か起動と停止を試しているうちに環境が壊れてしまい、WordPressのファイルが足らなくなってまともに動かなくなってしまったので仕切り直しするためです。

なお、Docker for Windows上でDockerのVolumeを削除するコマンドが検索しても出てこなかったのでvolume削除はできませんでした(後で思えばDocker for Windows Desktopの設定画面からCLIを呼び出せるところが有った気がするので、そこからCLIを起動すればLinuxコマンドを叩けるのではないか、と思いました。が、気付くのが遅かったので未検証)。

仕切り直した環境で再度実験してみましたが、結果は変わらずエラー出力。

ただし、Docker for Windows Desktopのダッシュボードを見るとコンテナはrunning

試しにlocalhost:8889にアクセスすると、普通にWordPressが起動していました。テーマはTwenty Twentyで。

ログイン画面やダッシュボードを見ると日本語になっているので、コアパッケージは.wp-env.jsonの記述通りきちんと日本語版をダウンロードしてきている模様。

ログイン画面やダッシュボードを見ると日本語になっているので、コアパッケージは.wp-env.jsonの記述通りきちんと日本語版をダウンロードしてきている模様。
ログイン画面やダッシュボードを見ると日本語になっているので、コアパッケージは.wp-env.jsonの記述通りきちんと日本語版をダウンロードしてきている模様。

また、プラグインにWP Multibyte Patchもインストールされているのでこちらも大丈夫そう(有効化の確認はしていない)。

では、あのエラーは何だったのか……。

ちなみに、テーマが冒頭の最小限テーマがインストール済みになっているかどうかは確認し忘れました……。

もしこれらの課題が片付いたら、WP-CLIでプラグイン有効化やテーマ有効化もした状態で起動するようにしたいですね(できるかどうかは不明)。

……あれ、ドキュメント読んだらもしかして"plugins"の値に"."を追加すれば良いのか……?

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。