【WordPress】テーマの開発はLocal by FlywheelとGitHubで解決した(追記あり)

Local by Flywheel
メインブログの引っ越しが間近に迫っているんですが、引っ越すに当たってメインブログだけはきちんとテーマを作り込みたいと思っていました。もちろんスクラッチは時間が掛かりすぎるから無理だとしても、スターターテーマと言われる基本的なデザインだけしてあるテーマを元に作りたいと。



ただそうは言っても動作確認がなかなか面倒くさい。Vagrantでサーバ立ち上げて、Wordpress入れて各種設定してDB用意して……ってやれば出来るけど出来ればもっと簡単にやりたい。そう思っていたら「Local by Flywheel」がすげーいいよっていう話を見掛けたので入れてみたらほんとにすげーよかった。


超簡単にローカル環境が構築できるLocalbyFlywheelの使い方



何をやってるかというと、要するにdockerで環境をまるごと用意するって感じです。Virtualbox上にdockerがセットアップされ、その中にPHP、MySQL、Apache、WordPressが用意されていて、サーバを起動するだけで使用出来ます。最初のセットアップには少し時間が掛かりますが、それさえ終わってしまえば、Local by Flywheelの起動に2分ぐらい、そこからサーバの立ち上げに10秒ぐらい。それだけ。WordPressのファイルは、

~/Local Sites/サイト名/app/public

以下に全てあるので自由にカスタマイズ出来ますし、プラグインのインストールやテーマのインストールももちろん出来ます。アプリケーションはWindowsとMac両方に対応していて、どちらで使っても使用感は同じぐらい良かったです。どちらのOSの方にもオススメ。



テーマティレクトリをGitHubで管理


もうひとつ試したいことがあって、それはテーマの開発を色んな場所でやりたいと。途中までMacでやって、そのあとWindowsで引き継いで……みたいな。かといって、WordPress全体をソース管理するのは現実的ではないし、そもそもデプロイが大変。

いろいろ試行錯誤した結果、本番環境のテーマフォルダをリポジトリ管理するようにして、それをローカル環境にクローンし、Local by Flywheelでスターターテーマをインストールして開発、一通り開発が終わったら本番環境でpullしてデプロイ。そういう形に落ち着きました。テーマディレクトリ以外には触れなくなるけれど、変えすぎると収拾が付かなくなるから、変えない。手を加えて良いのは子テーマのディレクトリのみ。そういう制限を設けて開発を行い、実際別に何の不都合もありませんでした。さすがWordPress良く出来てる。

問題はローカルのテーマカスタマイズで行ったカスタマイズが本番環境には反映されないことですけど、まあそれは仕方ないよね。自前でウィジェットを用意したりして出来る限りデプロイ時の作業を減らすようにしてるけど、ある程度は仕方ないです。サイドバーへのウィジェットの登録とか。デプロイ時に必要な作業をまとめておくしかないかな。こういうの、開発業務ではどうしてるんでしょうね。納品時に当然その設定までやると思うんだけど、共通のドキュメントとか用意しておくんだろうか。


まー僕が今後WordPressを使ったプロジェクトにJOINすることはないとは思いますが。



追記:Volumesアドオンが超便利




僕なんかよりずっとプロフェッショナルな活躍をしている友人に教えてもらいました。ありがとう!

確かにデフォルトの状態だと、管理しづらいんですよね……「Local Sites」っていうスペース入ったディレクトリ名も鬱陶しいし。無理やりシンボリックリンク貼ってましたけど、このアドオン使うとリポジトリ管理しているディレクトリをそのままLocalに紐付けられるのでかなりスッキリします。素敵。確かにこれ必須ですね。


彼が書いているとおり、本来であればテーマファイルだけでなく開発ファイルも一緒にgit管理すれば開発・納品共にしやすいんでしょうけど(もちろんデプロイも)、.gitignore考えるの面倒だったのでとりあえずはテーマファイルだけ。いや、以前調べたときに有効そうなgitignore例は見つけているので、それ使えば出来るとは思うんですけどね。wp-configとかコントロールパネルからいじることはないのでgit管理した方が便利なんでしょうけど、もう少しWordPressの中を勉強してみて、テーマ以外にgit管理した方が良さそうなところが出てきたらやってみようと思います。