WordPressの子テーマを作成する方法と必要な場面
子テーマを使わないテーマカスタマイズは危険
WordPressテーマを直接カスタマイズする際、親テーマのファイルを編集してしまうと、アップデート時に変更内容がすべて上書きされて消えてしまいます。
子テーマとは、親テーマの機能やデザインを引き継ぎながら、カスタマイズ部分だけを別管理できる仕組みです。親テーマを更新しても、子テーマの変更は保持されます。
長期運用を前提とするサイトでは、子テーマの使用は必須レベルのベストプラクティスです。
子テーマが必要な場面
- CSSをカスタマイズしたい
- functions.phpで機能を追加したい
- テンプレート(header.php / single.phpなど)を変更したい
- HTML構造を調整したい
子テーマの作成手順
ステップ①:フォルダを作成
/wp-content/themes/ に子テーマ用フォルダを作成します。一般的に「親テーマ名-child」とします(例:revit-child)。
ステップ②:style.cssを作成
/*
Theme Name: Revit Child
Theme URI: https://revit-works.com/
Description: Revitテーマの子テーマ
Author: Revit
Template: revit
Version: 1.0.0
*/
※「Template」は親テーマのフォルダ名と完全一致が必須です。
ステップ③:functions.phpを作成
親テーマのCSSは@importではなくwp_enqueue_styleで読み込むのが現在の推奨方法です(パフォーマンスと依存関係管理のため)。
get('Version')
);
}
ステップ④:有効化
- 管理画面 → 外観 → テーマ
- 子テーマを確認
- 有効化
子テーマの動作仕組み(重要)
子テーマは以下の優先順位で読み込まれます。
- テンプレートファイル:子テーマ → 親テーマ
- functions.php:両方読み込まれる(上書きではない)
この違いを理解していないと、意図しない動作になるため注意が必要です。
子テーマでのカスタマイズ方法
CSSの上書き
子テーマのstyle.cssに記述すると、親テーマのCSSを上書きできます。
テンプレートの上書き
親テーマと同じファイル名を配置することで、子テーマが優先されます(例:header.php / single.php)。
※テンプレート階層(Template Hierarchy)に従って読み込まれるため、構造理解が重要です。
子テーマが不要なケース
- 軽微なCSS変更のみ(→ 追加CSSでも対応可)
- テーマがすでに高度なカスタマイザーを持っている場合
ブロックテーマ(FSE)の場合
最近のブロックテーマでは、サイトエディターでの編集が主流となっており、必ずしも子テーマが必要とは限りません。ただし、PHPや構造変更を伴うカスタマイズでは、従来通り子テーマの使用が推奨されます。
まとめ
テーマのカスタマイズを行う場合、子テーマの使用は安全性・保守性の観点から必須です。特に長期運用やクライアント案件では、子テーマなしのカスタマイズはリスクが高すぎます。
正しい構造で管理することで、アップデートにも強く、拡張しやすいサイト運用が可能になります。設計段階で迷う場合は、専門家に相談することで無駄な手戻りを防げます。