本文へジャンプ

Composerを使ってWordPress導入作業を一瞬で終わらせる

Posted by MIO

ゲームと猫と多肉植物を愛するMioです。
最近は猫を見ているだけで飽きないのですっかりPS4を起動しなくなってしまいました。
代わりに多肉植物を育てるという時間のかからない且つ一見オーガニックな趣味を見つけたのですが、実のところは交配してオリジナル品種を作出するというマッドサイエンティストな野望を抱いています。

さて、MONSTER DIVEではWordPress関係のお仕事を定期的にいただくのですが、新規構築する際に毎回同じ作業をするのはダサいな!という気持ちになった秋の夜長。
今回はComposerを使ってWordPressの導入作業を出来る限り自動化して楽するための小ネタです。

Composerを使ってWordPress導入作業を一瞬で終わらせる

Composer

Composerとは

PHPのパッケージ管理システムです。
MacにおけるHomebrewだったり、あるいはNode.jsにおけるnpmと同じ位置づけです。

例えばAというライブラリを導入したいと思った時、Aを動かすためにBが必要で、さらにBを動かすためにはCが必要、という依存関係があったとします。
従来の導入手順だと、Aを入れようとしたらBが無いと怒られて、それならばとBを入れようとしたら今度はCを入れろと叱られ...
という煩わしいたらい回しがありました。
パッケージ管理システムを使えば、そのあたりの依存関係を勝手に解決してくれます。
さらに、導入したいライブラリを毎回探してDLして、という手間もなくなります。

なぜComposer?

今やComposerはある程度のPHP開発には無くてはならないデファクトスタンダード化しています。
でも、WordPressのテーマ開発においてComposerによる導入というのはまだあまり一般化していない気がします。
確かにWordPressの場合はそれほど大きな規模の開発にはなりづらく、Composerを使うまでもないということもあると思いますが、いざ使ってみると、

  • 毎回最新Verを調べてDLする必要が無くなる(勝手に最新Verを探してきてくれる)
  • いつも入れる基本プラグインの最新版も自動でまとめて導入できる
  • 上記の設定をcomposer.jsonでテンプレート化して使い回せる

というメリットがあるわけで、一度使い始めるとこれ無しでは生きていけない身体になりました。

Composerの導入

composer本体の入手、インストール

Linuxの場合

お好きなディレクトリにて、

  1. curl -sS https://getcomposer.org/installer | php

を実行すると、 composer.phar というプログラムが落ちてきます。
これをそのまま

  1. php composer.phar

と実行しても動くのですが、面倒なので"composer"コマンドだけで叩けるようにしましょう。

  1. mv composer.phar /usr/local/bin/composer

これでOK。

Macの場合

Nodebrewに存在しているので、

  1. brew install composer

だけでインストールできます。

基本的な使い方

プロジェクトのディレクトリ内に移動して、同一階層に
composer.json
というjson形式の設定ファイルを用意します。
その中にインストールしたいパッケージの名前やバージョンを書いておけば、あとは

  1. composer install

を実行するだけで諸々のパッケージが自動的にDLされます。

設定ファイルに変更があった場合は

  1. composer update

を実行すれば、変更部分のみアップデートされます。

WordPress用のcomposer.json設定

いきなり結論から書いてしまいますが、私はこんなjsonを用意しました。

  1. {
  2. "name": "monsterdive/wp-composer",
  3. "authors": [
  4. {
  5. "name": "Mio",
  6. "email": "hoge@monster-dive.com"
  7. }
  8. ],
  9. "repositories":[
  10. {
  11. "type": "composer",
  12. "url": "https://wpackagist.org"
  13. },
  14. {
  15. "type": "composer",
  16. "url": "https://wp-languages.github.io"
  17. }
  18. ],
  19. "require": {
  20. "johnpbloch/wordpress": ">=4.9.8",
  21. "wpackagist-plugin/wp-multibyte-patch": ">=2.8.1",
  22. "wpackagist-plugin/advanced-custom-fields": ">=4.4.12",
  23. "koodimonni-language/core-ja": "*"
  24. },
  25. "autoload": {
  26. "psr-0": {
  27. "Acme": "src/"
  28. }
  29. },
  30. "extra": {
  31. "installer-paths": {
  32. "public/wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
  33. },
  34. "dropin-paths": {
  35. "public/wp-content/languages/": ["vendor:koodimonni-language"],
  36. "public/wp-content/languages/plugins/": ["vendor:koodimonni-plugin-language"],
  37. "public/wp-content/languages/themes/": ["vendor:koodimonni-theme-language"]
  38. },
  39. "wordpress-install-dir": "public"
  40. }
  41. }
  • name、author欄はお好きに設定してください。
  • repositoriesに検索対象のリポジトリのURLを指定します。
    今回はプラグイン用の https://wpackagist.org と多言語用の https://wp-languages.github.io を設定しました。
  • requireに欲しいパッケージの対象リポジトリ/パッケージ名を指定します。
    今回はWP本体、プラグイン(必須のMultibyte Patchと、ついでに必ずと言っていいほど使うAdvanced Custom Fieldsも)、日本語翻訳ファイルを設定しました。
  • autoloadはWPではあまり使う場面はないので、とりあえず気にしなくてOKです。
  • extraにディレクトリ構成を指定します。
    "public"になっている部分等は環境に合わせて変更してください。

あとはこのcomposer.jsonが置かれたディレクトリで

  1. composer install

するだけで、目的のファイルがすべて自動的に落ちてきます。
もちろんwp-config.phpの設定変更などは必要ですが、そこまでの初期導入作業が相当簡略化されたはずです。

まとめ

このcomposer.jsonをWP導入時の基本設定として使い回すだけで、毎回パッケージファイルをかき集める作業から開放されます。
さらに、自作のcomposerパッケージを登録しておいて必要に応じてインストールすることも出来るので、例えばプレーンな基本テーマのようなものをgithubに登録しておいて使い回すのも良さそう。

とにかくComposerは導入も設定も超カンタンなので、WordPress開発でもそれ以外でも是非お試しください。

Recent Entries
MD EVENT REPORT
What's Hot?