Blog
ブログ
WordPressの「親テーマ・子テーマ」の構造

📦 まず、親テーマと子テーマとは何か
WordPress のテーマは、
親テーマ
+
子テーマ
という構成で動かせる。
イメージとしてはこんな感じ。
【親テーマ】
= テーマ本体
・デザイン基盤
・機能
・テンプレート
・レイアウト
・アップデート対象
↓
【子テーマ】
= 追加変更レイヤー
・CSS
・JS
・functions.php
・テンプレート上書き
・独自機能
重要なのは、
子テーマは「テーマ本体そのもの」ではない
ということ。
🗂 実際のフォルダ構造
フォルダで見るとこう。
SWELLの場合
wp-content/themes/
├ swell/
└ swell_child/
Welcartの場合
wp-content/themes/
├ welcart_basic/
└ welcart_basic-child/
構造としては完全に同じ。
⚙️ 有効化するのは子テーマ
WordPress管理画面では、
SWELL
SWELL CHILD
のように別テーマとして並ぶ。
ただ、実際には:
SWELL CHILD
↓
SWELL本体を利用して動く
という関係。
つまり、
親テーマと子テーマはセット
で存在する。
🧱 子テーマだけでは動かない
ここがかなり重要。
子テーマは、
「差分だけ持つもの」
だから。
例えば:
swell_child/
├ style.css
└ functions.php
しかなくても成立する。
なぜなら、足りない部分は全部:
親テーマ(swell)
を使うから。
🔍 WordPressの読み込みイメージ
WordPressは、
まず子テーマを見る
↓
なければ親テーマを見る
という順番で動く。
子テーマに single.php がある場合
swell_child/single.php
↓
これが優先される。
子テーマにない場合
↓
swell/single.php
を使う。
つまり、
子テーマは「必要部分だけを上書きする仕組み」
になっている。
🛠 SWELLもWelcartも同じ構造だった
今回整理していて理解できたのがここ。
SWELL
SWELL
+
SWELL CHILD
↓
SWELL本体を利用しながらカスタマイズ。
Welcart Basic
Welcart Basic
+
welcart_basic-child
↓
Welcart Basic を利用しながらカスタマイズ。
つまり、
「親テーマを土台にして、子テーマで差分管理する」
という本質は同じだった。
🛒 Welcartも“テーマ”だった
最初は Welcart に対して、
「ECシステム」
という印象を持っていた。
でも実際には、
Welcart Basic
というテーマが存在していて、その上に:
welcart_basic-child
を載せて運用していた。
つまり Welcart も SWELL と同じく、
「親テーマ + 子テーマ」
の構造だった。
📁 なぜ子テーマで管理するのか
理由はかなり合理的。
親テーマ側には:
- 基本機能
- テンプレート
- レイアウト
- アップデート
などを持たせる。
一方で子テーマ側には:
- CSS
- JS
- functions.php
- テンプレート差分
- サイト固有機能
など、
「案件ごとの差分」だけを持たせる。
その結果、
親テーマは触らず、子テーマだけ管理する
という構成になる。
💻 実務ではGit管理も子テーマだけになる
実務では、
Git管理 = 子テーマのみ
というケースも多い。
親テーマは:
「公式から再取得できるもの」
だから。
管理したいのは、
自分たちが追加・変更した部分
だけになる。