【v3対応版】VCCWとGitを使ってテーマ制作環境をスマートに共有する方法

このエントリーをはてなブックマークに追加


以前「VCCWとGitを使ってテーマ制作環境をスマートに共有する方法」という記事を書きましたが、その後VCCWのバージョンが上がり、バージョン3以降では同じやり方で利用できないことが分かりました。
そこで、改めてVCCW v3でWordPressのテーマ制作環境をGitで管理する方法を解説すると同時に、テーマ作りに役立つ便利なリポジトリのサンプルを作成したので、合わせてご紹介したいと思います。

「simple-vccw-env」とVCCWのバージョン比較

以前紹介していたサンプル「simple-vccw-env」は、VCCWの仕様変更に伴い、バージョン3以降では使用できなくなりました。(vagrant upを実行するとエラーが発生してしまう)

VCCW v2であれば、問題なく使用できるので、「simple-vccw-env」を使い続けたい方は、VCCW v2の方を落として利用してください。(GitHubのリポジトリをcloneする場合は、v2ブランチに切り替えて使用)

VCCWの公式サイトも現在はv3版となり、旧バージョンのv2は別サイトで配布されています。

なぜ以前の方式(VCCW本体を外部のディレクトリに設置する)で使用できなくなったのか、突っ込んだ話は私にも分からないのですが、プロビジョナーがChefからAnsibleに変わったことでVagrantfile等の構成も大きく変更、また外部ディレクトリの設定ファイルを基本的に読めない仕様になったことが原因のようです。

この辺、頑張ればなんとかできそうな気もするのですが、よくよく見るとVCCW v2からv3への変更に伴い、VCCW本体のファイルサイズが大幅に削減されていることが分かります。(約1.9MB→約135KB)そもそも「simple-vccw-env」のような方式を採っていたのは、ローカルの容量節約が主な大きな目的の一つだったのですが、v3以降その必要はなくなったと言っていいのではないでしょうか?

その他、VCCW v2とv3の主な変更点については、VCCW作者の宮内さんがまとめているこちらのエントリーを参考にしてください。

VCCW v3での変更点と新機能まとめ – Qiita

VCCW v3でWordPressのローカル環境をGit管理する方法

では、VCCW v3でWordPressの環境をGit管理するにはどうしたらいいかと言うと、VCCW本体の容量が十分に小さくなっているのだから、普通にまるっとGitの監視対象に含めればいいのですが、実際のリポジトリのサンプルをVCCW作者の宮内さんが公開してくれています。

使い方はとっても簡単。まず、VCCW v3公式サイトのインストール方法1〜4までを進めてもらってから、「repository-example-of-wp」のリポジトリをローカルにcloneし、vagrant upを実行すればOKです。

GitでVCCW環境を共有するためのサンプルリポジトリ「repository-example-of-wp」。

こちらのサンプルも、WordPressのデータベースの情報がSQLのdumpファイルに保存されていて、VCCWの起動時に自動的にインポートされる仕組みになっています。

なので、WordPressの設定を変更したり、テスト用の投稿を追加した場合は、以下のコマンドを実行して、wordpress.sqlにデータを書き込んでください。

vagrant ssh
wp db export /vagrant/wordpress.sql
exit

また、このリポジトリをチームで共有していて、他のメンバーがWordPressのデータベースを変更した場合(リポジトリからプルしたwordpress.sqlに差分があった場合)は、下記のコマンドを実行して、wordpress.sqlからデータをインポートしてください。

vagrant ssh
wp db import /vagrant/wordpress.sql
exit

あとは、作業が終わったら、他のファイルと同じようにwordpress.sqlをコミット&プッシュするだけで、WordPressの中身のデータも含めて、まるっとGitでバージョン管理していくことが可能になります。

テーマ制作を効率化するスターターキット「vccw-env-for-theme-build」

テーマ制作を効率化するスターターキット「vccw-env-for-theme-build

さて、せっかくなので今回はもう一つVCCW入りリポジトリのサンプルを用意しました。こちらはバージョン3対応版なので、初回の起動が高速化されているだけでなく、前回の「simple-vccw-env」と比べるともう一つ変わっている点があります。

「simple-vccw-env」にはスターターテーマ『_s』と、デバッグ用のテーマユニットテストデータがあらかじめインストールされていましたが、今回作った「vccw-env-for-theme-build」には、それに加えて日英二ヶ国語のマルチサイト設定が最初からセッティングされています。

「vagrant up」コマンドを実行すると、最初からスターターテーマ『_s』がインストールされた状態でWordPressが立ち上がります。

これは私がWordPress公式テーマ「tsumugi」を制作した時に使っていた環境と同じものなのですが、日本語での表示に加えて、英語バージョンでインストールした時のデザインや、コンテンツを入れた際の見栄えなどもチェックできるので、とっても便利です。

特に公式ディレクトリ向けのテーマを制作する場合は、英語版での見た目や使い勝手が全ての基準となるので、日英2サイトを切り替えながらデバッグできる環境があると、テーマ制作の精度と効率が格段にアップします。

公式ディレクトリ向けテーマを作ってみたい方や、海外向けにテーマを配布してみたいと思っている方は、ぜひこのリポジトリをテーマ制作のスターターキットとして使ったり、チームで共有するための雛形として活用してもらえると嬉しいです。

管理画面を見るとあらかじめマルチサイトが設定されています。日本語サイトはURLに「/ja」を付けて閲覧してください。
もちろん、デバッグ用のテスト投稿データも投入済み。アップロードされた画像もしっかりGitで管理されています。

補足&注意点

最後に注意点を一つだけ・・。上記の方法で、理論上はVCCWのローカル環境の『状態』をGitに保存し、別のPCのローカルへ共有することができるのですが、実際に行われている処理を見てみると、共有先のPCへ新規でWordPressをインストールしていること自体は変わりません。

そのため、site.ymlで「version: latest」と指定していると、WordPressのバージョンが上がる度に、コアファイルの構成が変わってしまいます。なので、チームで環境を共有する場合は、メンバーと相談した上で「version: 4.8」のように、プロジェクト内でWordPressのバージョンを固定してしまった方がいいでしょう。

その上で、「vccw-env-for-theme-build」でやっているように、あえてWordPressのコアファイルはリポジトリに含めず、開発したいテーマやプラグインのディレクトリだけをGitの監視対象に含めるのも、混乱を避ける一つの手法かと思います。(.gitignoreで除外しているWordPressのコアファイル等は、VCCWが自動的に生成して補ってくれます)

その辺りは、ぜひご自分で色々と試しながら、一番いいやり方を探ってみてください。それでは皆さんも、よいWordPress&VCCWライフを!

関連記事