WordPressのファイルをGitで管理

WordPress
スポンサーリンク

WordPressは、ファイル郡と、DBでできている。

このうち、ファイルをGitでバージョン管理したい。

だが、WordPressは以下の問題があって、ファイル全部をGitで管理すべきではない。

  • アップデートなどでしょっちゅう更新されるファイルがある
  • 検証環境と本番環境を分けているときに、内容を変えなければならないものがある

 

Gitで管理すべきWordPressのファイル

  • 使用中のテーマフォルダ一式
    • wp-content/themes/使用中のテーマフォルダ

基本的には使用中のテーマフォルダだけでよさげ。

管理するべきものはテーマファイルだけだと思うので、

参考:Qiita

 

/.htaccessは、Git管理対象とするか

後述するサイトにあるけど、/.htaccessは、WordPressにより書き換えられる部分があるため、Git管理しないという考え方もある。

が、

個人的には、以下の場合、Gitの管理対象としたい。

  • WordPressやレンサバが自動生成する部分以外の部分を記述している場合
    • しかし、その記述部分が本番環境と検証環境とで異なった内容となる場合、どうするか検討する
      • 本番環境の/.htaccessだけGit管理するか
      • 本番環境と検証環境の記述両方書いておいて、片方をコメントアウトしておくか
      • 本番環境と検証環境の記述両方書いておいて、IF文で自動的に設定が切り替わるようにしておくか(Apache2.4)(未検証)
      • 紛らわしいので/.htaccessはGit管理しないか

 

参考1(Qiita)

上記のQiita

.gitignoreに対象のテーマファイルのみを管理するように記述する。

*
!.gitignore
!/wp-content/themes/{mytheme} 
# {mytheme}にはテーマ名を入れる

 

基本的にはこれでよさそうやな。

参考2

WordPressのフォルダを一個したに掘った場合(この場合は/cms/としている)の、.gitignoreの書き方について書かれている。

また、

LaravelなどのPHPフレームワークとWordPressの共存について書いているので、必要が出てきたら再度確認したいと思う。

wp-content/themes/[任意のテーマフォルダ]

プラグインに関してはサーバー上で更新するため、Gitで管理するのは避けた方が良いと思います。
もし独自プラグインを作りたい場合も、テーマフォルダ内で展開して良いと思います。
また、画像などが入る wp-content/uploads フォルダや、言語ファイルの wp-content/languages フォルダ、更新時の一時ファイル置き場に使われる wp-content/upgrade フォルダなども頻繁に更新されるためGit管理下には置きません。

WordPressのGit管理を考える
Gitでのソースコード管理が浸透しつつある昨今、WordPressはGit管理できるのか考えてみます。

 

/public/ をDocumentRootとした場合の、.gitignoreの書き方。

除外(.gitignore)設定
フォルダ構成が上記の場合、.gitignore ファイルは以下のようになります。
# WordPressによって書き換わる場合があるため除外
/public/.htaccess
/public/sitemap*
# テーマフォルダと wp-config.php のみにする
/public/cms/*
!/public/cms/wp-config.php
!/public/cms/wp-content
/public/cms/wp-content/*
!/public/cms/wp-content/themes
/public/cms/wp-content/themes/*
!/public/cms/wp-content/themes/maintheme

.htaccessはGit管理したい場合、以下。

/public/sitemap*
/public/cms/*
!/public/cms/wp-config.php
!/public/cms/wp-content
/public/cms/wp-content/*
!/public/cms/wp-content/themes
/public/cms/wp-content/themes/*
!/public/cms/wp-content/themes/maintheme

mainthemeの部分は、要変更。

 

 

wp-config.phpも、検証機が別のDB使ってるなら本番と齟齬が出るので、それが嫌な場合は除外で。

 

やっぱり、Gitで管理するWordPressのフォルダは、基本は使用中のテーマフォルダのみってことになるっすな。

コメント