WordPress開発におけるバージョン管理

WordPress開発をする際のバージョン管理について考えてみたが、ざっくりふたつのパターンがあると思う。

  • WordPressまるごと
  • テーマ毎/プラグイン毎

WordPressまるごと

WordPressのファイル一式をバージョン管理システムの管理化に置く方法。
その配下でテーマやプラグインもいっしょに開発する。

単なるウェブサイト開発ではなく、WordPressをベースにウェブアプリケーションを構築するようなケースで手堅くやりたい場合に適している。

メリットとしては

  • WordPress本体や既成プラグインのバージョンを確実に固定できる
  • WordPress本体や既成プラグインに入れた修正を管理できる
  • テーマやプラグインを複数に分けて開発している場合でもリポジトリがひとつで済む
  • 本格的なデプロイシステムを構築しやすい

といった点が挙げられる。

まずWordPressのバージョンアップで問題が起きたときに切り戻しがしやすい。(DB構造の修正が入るバージョンアップだと注意が必要だが)

またWordPress本体のコードを修正するというのはアンチパターンだが、このやり方ならある程度はマシにやることができるだろう。

GitHubで開発している場合はプライベートリポジトリの節約にもなる。

Capistranoなどを使った本格的なデプロイの仕組みを構築するにも都合がいい。

テーマ毎/プラグイン毎

特に複雑なことをしないサイトならだいたいテーマ開発で話は済むので、テーマファイル一式を管理できればOK。

デプロイなども大がかりなことは不要で、単純にアップロードすればいいという話になる。

汎用的に使える部分をプラグインとして個別に管理するのもひとつ。
開発単位が別れて煩雑になるのとGitHubで開発している場合はプライベートリポジトリの数が増えてしまうという問題があるが、複数プロジェクトでの使い回しなどがしやすくなる。

公開して差し支えない部分ならパブリックにしてしまうと言う手もあるが、成果物の権利がお客さんにある場合は理解を得るのが大変かも。