WordPress テーマと composer

mimizuku

Mimizuku Advent Calendar 23日目の記事です。

先日の記事でも書きましたが、MimizukuComposer を使って 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-themetype: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 ですね。

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく