Blog

ブログ

WordPress

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管理 = 子テーマのみ

というケースも多い。

親テーマは:

「公式から再取得できるもの」

だから。

管理したいのは、

自分たちが追加・変更した部分

だけになる。