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

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

あなたのサイト、こんなことになっていませんか?

まめすけ

がんばってCSSを書き足したのに、テーマを更新したら全部消えちゃったよ!

私はフリーランスでWordPressサイトの制作と保守を請け負っています。「更新したらカスタマイズが消えた」というお悩みはよくある相談の一つです。

原因はほぼ一つで、親テーマを直接編集していたことです。

この記事では、それを防ぐための「子テーマ」を、実際に使えるところまで作ります。コピペで完結する内容にしていますので、順番どおりに進めてください。


そもそも子テーマとは何ですか?

カスタマイズ内容を、テーマ更新から守るための仕組みです。

WordPressのテーマは、作者によって定期的に更新されます。不具合の修正やセキュリティ対応が含まれるため、更新は止めるべきではありません

ただし更新すると、テーマのファイルは新しいものにまるごと置き換わります。そこに自分で書き足したCSSやPHPがあれば、当然そのまま消えます。

そこで使うのが子テーマです。

親テーマ子テーマ
役割本体。デザインと機能のすべてカスタマイズ内容だけを置く場所
更新作者が更新する更新されない(自分専用)
編集してはいけないここを編集する

WordPressは「子テーマに記述があればそちらを優先し、無ければ親テーマを見る」という動きをします。親テーマには一切触らずに、上書きだけできるわけです。


子テーマは必ず必要ですか?

カスタマイズをするなら必要です。しないなら不要です。

判断はシンプルです。

子テーマが必要なケース

  • CSSを追加してデザインを調整したい
  • functions.php に機能を追加したい
  • JavaScriptを読み込ませたい
  • テンプレートファイル(header.php など)を書き換えたい

子テーマが不要なケース

  • テーマの設定画面だけで完結している
  • 少量のCSSを「追加CSS」欄に書いているだけ

ちなみに管理画面の「外観 → カスタマイズ → 追加CSS」は、テーマを更新しても消えません。CSSを数行足すだけなら、子テーマを作らずここで済ませても構いません。

ただし、記述が増えてくると管理しづらくなります。数十行を超えるなら子テーマに移すほうが健全です。

まめすけ

表示スペースが狭いので長いコードになると見にくいんだよね


使っているテーマによって手順は違いますか?

違います。まずお使いのテーマを確認してください。

公式の子テーマが配布されているテーマは、ダウンロードして入れるだけです。自作は不要ですし、するべきでもありません。

テーマ対応
SWELL公式サイトの会員ページから子テーマを配布。ダウンロードするだけ
Lightning公式で子テーマが用意されています。まずは公式配布を確認
Cocoon公式サイトで子テーマを配布
その他・オリジナルテーマ自作が必要

配布されているのに自作するのは避けてください。 公式版はそのテーマの構造に合わせて作られており、動作も保証されています。自作すると、テーマ側の想定と噛み合わず不具合の原因になります。

以下、SWELL・Lightningの場合と、自作が必要な場合に分けて解説します。


SWELLの子テーマはどうやって入れますか?

公式サイトからダウンロードして、アップロードするだけです。

ダウンロードするのは「子テーマ」の行にある swell_child.zip です。

  1. SWELLERS’(会員サイト)にログイン
  2. マイページの「SWELL製品ダウンロード」から子テーマをダウンロード
  3. WordPress管理画面 → 外観 → テーマ → 新規追加 → テーマのアップロード
  4. ダウンロードしたZIPファイルを選択してインストール
  5. 有効化

これで完了です。ファイルを作る必要はありません。

なおSWELLは、子テーマが無くてもJavaScriptを追加できます。管理画面の「カスタマイザー」から直接記述できるためです。

とはいえ functions.php を編集する予定があるなら、子テーマは入れておいてください。


Lightningの子テーマはどうやって入れますか?

公式が配布しているサンプルデータを使います。

Lightningは開発元のVektor Inc.が、公式の学習サイト「ベクトル トレーニング」で子テーマのサンプルデータを配布しています。自作せず、こちらを使うのが確実です。

手順は以下のとおりです。

STEP

ダウンロードして解凍する

上記ページから子テーマのサンプルデータをダウンロードします。解凍すると lightning-child-sample というフォルダが出てきます。

このフォルダ名を lightning-child など、分かりやすい名前に変更してください。

STEP

style.css を編集する

フォルダ内の style.css をテキストエディタで開きます。

css

/*
Theme Name: Lightning Child Sample
Template: lightning
*/

Theme Name: を書き換えてください。 ここに書いた名前が、管理画面のテーマ一覧に表示されます。

Template: は絶対に変更しないでください。 ここは親テーマのフォルダ名を指しており、変えると子テーマが機能しません。

STEP

FTPでアップロードする

フォルダごと /wp-content/themes/ にアップロードします。親テーマの lightning フォルダと同じ階層です。

STEP

有効化する

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つ。これだけです。

STEP

フォルダを作る

FTPソフト、またはサーバーのファイルマネージャーで /wp-content/themes/ を開き、フォルダを新規作成します。

名前は「親テーマのフォルダ名 + -child」にしてください。

例:親テーマが lightning なら → lightning-child

STEP

style.css を作る

作ったフォルダの中に style.css を作り、以下を記述します。

css

/*
Theme Name: Lightning Child
Template: lightning
Version: 1.0.0
*/

Template: の値が最重要です。 ここには親テーマのフォルダ名を、大文字小文字まで正確に書きます。1文字でも違うと子テーマは動きません。

親テーマのフォルダ名は、/wp-content/themes/ を開けば確認できます。

STEP

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 の前に空白や改行を入れないでください。 ここに余計な文字が入るだけでエラーになります。また、ファイル末尾の ?> は書かなくて構いません(むしろ書かないほうが安全です)。

STEP

有効化する

管理画面 → 外観 → テーマ を開くと、作った子テーマが表示されます。有効化をクリックしてください。

サイトを表示して、デザインが崩れていなければ成功です。


有効化したらデザインが崩れました

親テーマの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.cssfunctions.php
最重要ポイントTemplate: に親テーマのフォルダ名を正確に書く
作業前バックアップとFTP接続情報の確保

子テーマは、一度作ってしまえばそれ以降ずっと使えます。最初の30分の作業が、この先何年分ものカスタマイズを守ってくれると考えると、費用対効果はかなり良い部類です。

「テーマを更新するのが怖い」と感じているなら、その不安の正体はたいてい子テーマの不在です。ここを整えてしまえば、更新は怖くなくなります。


同じようなお悩み、ありませんか?

この記事のような不具合・お困りごとは、実際に状況を見た上でご提案します。
まずは無料相談から、お気軽にどうぞ。

このサイトはテーマ「SWELL」を使っています

「SWELL」はWordpress初心者も慣れた人も使い続けられるテーマだと思います。

よかったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

WordPressでサイトを作り、壊し、また作る。
フリーランスとしてココナラで実案件に向き合いながら、その経験をそのまま言葉にしています。
うまくいった設定も、試したら失敗した話も、ぜんぶここに書いています。
すでにWordPressを持っていて、もう一歩進めたい人に届けば。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次