WordPressの子テーマの作り方|Lightning・SWELL別に、つまずかない手順で解説

あなたのサイト、こんなことになっていませんか?
まめすけがんばってCSSを書き足したのに、テーマを更新したら全部消えちゃったよ!
私はフリーランスでWordPressサイトの制作と保守を請け負っています。「更新したらカスタマイズが消えた」というお悩みはよくある相談の一つです。
原因はほぼ一つで、親テーマを直接編集していたことです。
この記事では、それを防ぐための「子テーマ」を、実際に使えるところまで作ります。コピペで完結する内容にしていますので、順番どおりに進めてください。
そもそも子テーマとは何ですか?
カスタマイズ内容を、テーマ更新から守るための仕組みです。
WordPressのテーマは、作者によって定期的に更新されます。不具合の修正やセキュリティ対応が含まれるため、更新は止めるべきではありません。
ただし更新すると、テーマのファイルは新しいものにまるごと置き換わります。そこに自分で書き足したCSSやPHPがあれば、当然そのまま消えます。
そこで使うのが子テーマです。
| 親テーマ | 子テーマ | |
|---|---|---|
| 役割 | 本体。デザインと機能のすべて | カスタマイズ内容だけを置く場所 |
| 更新 | 作者が更新する | 更新されない(自分専用) |
| 編集 | してはいけない | ここを編集する |
WordPressは「子テーマに記述があればそちらを優先し、無ければ親テーマを見る」という動きをします。親テーマには一切触らずに、上書きだけできるわけです。
子テーマは必ず必要ですか?
カスタマイズをするなら必要です。しないなら不要です。
判断はシンプルです。
子テーマが必要なケース
- CSSを追加してデザインを調整したい
functions.phpに機能を追加したい- JavaScriptを読み込ませたい
- テンプレートファイル(
header.phpなど)を書き換えたい
子テーマが不要なケース
- テーマの設定画面だけで完結している
- 少量のCSSを「追加CSS」欄に書いているだけ
ただし、記述が増えてくると管理しづらくなります。数十行を超えるなら子テーマに移すほうが健全です。



表示スペースが狭いので長いコードになると見にくいんだよね
使っているテーマによって手順は違いますか?
違います。まずお使いのテーマを確認してください。
公式の子テーマが配布されているテーマは、ダウンロードして入れるだけです。自作は不要ですし、するべきでもありません。
| テーマ | 対応 |
|---|---|
| SWELL | 公式サイトの会員ページから子テーマを配布。ダウンロードするだけ |
| Lightning | 公式で子テーマが用意されています。まずは公式配布を確認 |
| Cocoon | 公式サイトで子テーマを配布 |
| その他・オリジナルテーマ | 自作が必要 |
配布されているのに自作するのは避けてください。 公式版はそのテーマの構造に合わせて作られており、動作も保証されています。自作すると、テーマ側の想定と噛み合わず不具合の原因になります。
以下、SWELL・Lightningの場合と、自作が必要な場合に分けて解説します。
SWELLの子テーマはどうやって入れますか?
ダウンロードするのは「子テーマ」の行にある swell_child.zip です。
- SWELLERS’(会員サイト)にログイン
- マイページの「SWELL製品ダウンロード」から子テーマをダウンロード
- WordPress管理画面 → 外観 → テーマ → 新規追加 → テーマのアップロード
- ダウンロードしたZIPファイルを選択してインストール
- 有効化
これで完了です。ファイルを作る必要はありません。
なおSWELLは、子テーマが無くてもJavaScriptを追加できます。管理画面の「カスタマイザー」から直接記述できるためです。
とはいえ functions.php を編集する予定があるなら、子テーマは入れておいてください。
Lightningの子テーマはどうやって入れますか?
公式が配布しているサンプルデータを使います。
Lightningは開発元のVektor Inc.が、公式の学習サイト「ベクトル トレーニング」で子テーマのサンプルデータを配布しています。自作せず、こちらを使うのが確実です。


手順は以下のとおりです。
ダウンロードして解凍する
上記ページから子テーマのサンプルデータをダウンロードします。解凍すると lightning-child-sample というフォルダが出てきます。
このフォルダ名を lightning-child など、分かりやすい名前に変更してください。
style.css を編集する
フォルダ内の style.css をテキストエディタで開きます。
css
/*
Theme Name: Lightning Child Sample
Template: lightning
*/
Theme Name: を書き換えてください。 ここに書いた名前が、管理画面のテーマ一覧に表示されます。
Template: は絶対に変更しないでください。 ここは親テーマのフォルダ名を指しており、変えると子テーマが機能しません。
FTPでアップロードする
フォルダごと /wp-content/themes/ にアップロードします。親テーマの lightning フォルダと同じ階層です。
有効化する
ZIPのままアップロードする方法は注意が必要です
管理画面の「テーマのアップロード」からZIPを直接インストールすることもできますが、テーマ名が「Lightning Child Sample」のまま登録されます。
手軽ではあるものの、後から名前を変えるには結局 style.css を編集することになります。最初からSTEP 1〜4の手順で進めるほうが早いです。
管理画面 → 外観 → テーマ に表示されるので、有効化します。
Lightning Pro(G2)をお使いの場合
Pro版には専用の子テーマが別途用意されています。ただしLightning Proは旧バージョンにあたるため、新規で作成する場合は無料版Lightningの子テーマを使うことが推奨されています。
子テーマを自作するにはどうすればいいですか?
フォルダを1つと、ファイルを2つ作るだけです。
作るのはこの構造です。
/wp-content/themes/
├── 親テーマのフォルダ/
└── 親テーマ名-child/ ← 新規作成
├── style.css ← 新規作成
└── functions.php ← 新規作成
必要なものは、フォルダ1つ・ファイル2つ。これだけです。
フォルダを作る
FTPソフト、またはサーバーのファイルマネージャーで /wp-content/themes/ を開き、フォルダを新規作成します。
名前は「親テーマのフォルダ名 + -child」にしてください。
例:親テーマが lightning なら → lightning-child
style.css を作る
作ったフォルダの中に style.css を作り、以下を記述します。
css
/*
Theme Name: Lightning Child
Template: lightning
Version: 1.0.0
*/
Template: の値が最重要です。 ここには親テーマのフォルダ名を、大文字小文字まで正確に書きます。1文字でも違うと子テーマは動きません。
親テーマのフォルダ名は、/wp-content/themes/ を開けば確認できます。
functions.php を作る
同じフォルダに functions.php を作り、以下を記述します。
php
<?php
/**
* 子テーマの読み込み設定
*/
function ksuke_child_enqueue_styles() {
// 親テーマのCSSを読み込む
wp_enqueue_style(
'parent-style',
get_template_directory_uri() . '/style.css'
);
// 子テーマのCSSを読み込む
wp_enqueue_style(
'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( 'parent-style' ),
filemtime( get_stylesheet_directory() . '/style.css' )
);
}
add_action( 'wp_enqueue_scripts', 'ksuke_child_enqueue_styles' );
<?php の前に空白や改行を入れないでください。 ここに余計な文字が入るだけでエラーになります。また、ファイル末尾の ?> は書かなくて構いません(むしろ書かないほうが安全です)。
有効化する
管理画面 → 外観 → テーマ を開くと、作った子テーマが表示されます。有効化をクリックしてください。
サイトを表示して、デザインが崩れていなければ成功です。
有効化したらデザインが崩れました
親テーマのCSSが読み込めていない可能性が高いです。
原因は、ほぼ次の3つに絞られます。
| 症状 | 原因 | 対処 |
|---|---|---|
| テーマ一覧に出てこない | Template: の記述ミス | 親テーマのフォルダ名と完全一致させる |
| 文字だけの真っ白なページになる | 親テーマのCSSが未読込 | functions.php の記述を確認 |
| サイトが真っ白(管理画面も) | functions.php のPHPエラー | FTPで functions.php を削除 or 修正 |
真っ白になった場合も慌てないでください。 FTPで子テーマの functions.php を一旦削除すれば、管理画面には戻れます。
なお、テーマによっては上記の functions.php が不要な場合もあります。最近のテーマは親テーマ側でCSSの読み込みを管理していることがあるためです。崩れる場合は、wp_enqueue_style 部分を外して試してみてください。



FTPで戻せるって知ってるだけで、心の余裕が全然違うね
子テーマを作ったあと、何をすればいいですか?
カスタマイズは、すべて子テーマ側に書きます。
これが本来の目的です。
- CSSを追加したい → 子テーマの
style.cssの末尾に書く - 機能を追加したい → 子テーマの
functions.phpの末尾に書く - テンプレートを変えたい → 親テーマから該当ファイルを子テーマにコピーしてから編集する
※ただし、この方法は最終手段です。テンプレートを複製すると、そのファイルだけ親テーマの更新についていけなくなります。フックで実現できるなら、functions.php 側で対応するほうが安全です。
3つ目は、できるだけ避けたい方法です。
テンプレートファイルを複製すると、そのファイルだけ親テーマの更新から取り残されます。
テーマ側で不具合修正や機能追加があっても、複製したファイルには反映されません。
Lightningのようにフック(表示位置を指定してコードを差し込む仕組み)が用意されているテーマなら、まず functions.php で実現できないかを検討してください。どうしても構造そのものを変えたい場合の、最後の選択肢だと考えるのが安全です。
親テーマのファイルは、最後まで一度も編集しません。これが子テーマを使う唯一にして最大の理由です。
作業前に必ずやっておくこと
バックアップの取得です。
子テーマの作成自体はリスクの低い作業ですが、functions.php の記述ミスでサイトが表示されなくなることはあります。
- ファイル一式とデータベースのバックアップを取る
- FTPの接続情報を手元に用意しておく
- 可能なら、いきなり本番ではなくテスト環境で試す
特にFTPで入れる状態を確保しておくことが保険になります。管理画面に入れなくなっても、FTPさえあれば必ず戻せます。


実際に子テーマで何ができるのか
子テーマを使うと、テーマの標準機能では届かないところまで手が入れられます。
実例として、ページビルダー環境でクエリループを動かした記録がこちらです。


まとめ
| 項目 | 内容 |
|---|---|
| 子テーマの役割 | カスタマイズをテーマ更新から守る |
| SWELL | 公式配布をダウンロードするだけ |
| Lightning | 公式配布を確認。無ければ自作 |
| 自作に必要なもの | フォルダ1つ、style.css、functions.php |
| 最重要ポイント | Template: に親テーマのフォルダ名を正確に書く |
| 作業前 | バックアップとFTP接続情報の確保 |
子テーマは、一度作ってしまえばそれ以降ずっと使えます。最初の30分の作業が、この先何年分ものカスタマイズを守ってくれると考えると、費用対効果はかなり良い部類です。
「テーマを更新するのが怖い」と感じているなら、その不安の正体はたいてい子テーマの不在です。ここを整えてしまえば、更新は怖くなくなります。









コメント