Mimizuku Advent Calendar 23日目の記事です。
先日の記事でも書きましたが、Mimizuku は Composer を使って Packagist で配布を行っています。composer コマンドで Packagist にあるライブラリをダウンロードするには次のようなコマンドを打ちます。
$ composer install squizlabs/php_codesniffer
これでライブラリがコマンドを実行したディレクトリにダウンロードされるのですが、ファイルはそのディレクトリの中のvendor/
というディレクトリ内に配置されます。WordPress テーマの場合はwp-content/themes/テーマ
という配置にならないといけないので一工夫が必要です。
インストールする側
composer install
でダウンロードされるライブラリの配置場所をvendor/
から変更するにはインストールする側の composer.json にinstaller-paths
を追加します。もう詳しく覚えていませんが多分 composer/installers というライブラリもインストールしておいたほうが良かったような気がしますのでそれも書きます。
{ "require": { "composer/installers": "^1.2" }, "extra": { "installer-paths": { "../{$name}": ["type:wordpress-theme"], "../../plugins/{$name}": ["type:wordpress-plugin"] } }, ... 省略 ...
extra.installer-paths
の中でtype:wordpress-theme
とtype:wordpress-plugin
という2つのタイプを記述していて、それぞれがvendor/
じゃなくどこのディレクトリに配置されるべきか、ということを書いています。composer install
を実行するディレクトリからの相対パスでテーマのディレクトリとプラグインのディレクトリを指定します。Mimizuku Child の composer.json にも同じ記述をしているので参考になるかと思います。
ちなみに上記のコードは wp-content/themes/テーマ/
の中で実行する場合のサンプルです。例えばそこで
$ composer install inc2734/mimizuku
とすると、次のように配置されます。
wp-content/ └ themes ├ テーマ └ mimizuku
ライブラリ(インストールされる側)
インストールする側で「type:wordpress-theme
のときはwp-content/themes/{$name}
にダウンロードする」という記述をしましたが、インストールされる側ではこのタイプ(type:wordpress-theme
)を明記するようにします。Mimizuku のようなテーマだとこんな感じです。
{ ... 省略 ... "type": "wordpress-theme", ... 省略 ...
プラグインなら wordpress-theme のところを wordpress-plugin ですね。