WordPressを利用してWebサイトを運用する際、デザインや機能を自分好みにカスタマイズしたいと考えるのは自然な流れです。
しかし、テーマのソースコードを直接編集してしまうと、テーマのアップデート時にすべての変更が上書きされて消えてしまうというリスクがあります。
この問題を解決し、安全かつ永続的にカスタマイズを維持するための仕組みが「子テーマ」です。
2026年現在のWordPress環境では、従来の「クラシックテーマ」に加えて、サイトエディターを活用した「ブロックテーマ」が主流となっています。
これら2つの形式では子テーマの作り方や役割が若干異なるため、それぞれの特性を理解して適切に構築する必要があります。
本記事では、初心者の方でも迷わずに作業を進められるよう、クラシックテーマとブロックテーマの両方に対応した子テーマの作成手順を詳しく解説します。
なぜWordPressで子テーマが必要なのか
WordPressのカスタマイズにおいて、子テーマの使用は「ベストプラクティス」とされています。
その最大の理由は、親テーマが更新された際の影響を回避することにあります。
親テーマの制作者は、セキュリティの向上や新機能の追加、バグ修正のために定期的にアップデートファイルを配布します。
もし親テーマのファイルを直接書き換えていた場合、アップデートを適用した瞬間に、苦労して編集したコードはすべて初期状態に戻ってしまいます。
子テーマを利用すれば、変更内容は子テーマ側のディレクトリに保存されるため、親テーマがどれだけ更新されてもカスタマイズが失われることはありません。
また、万が一カスタマイズ中にエラーが発生して画面が真っ白になったとしても、子テーマを無効化するだけでサイトを元の状態に復旧できるという安全性も大きなメリットです。
クラシックテーマとブロックテーマの構造的な違い
子テーマを作成する前に、現在主流となっている2種類のテーマ形式の違いを整理しておきましょう。
これによって、作成すべきファイルの種類が明確になります。
| 特徴 | クラシックテーマ | ブロックテーマ |
|---|---|---|
| 主なカスタマイズ方法 | PHPファイルとCSSの編集 | サイトエディターとtheme.json |
| スタイルの管理 | style.css | theme.json / style.css |
| テンプレートの形式 | .php ファイル | .html ファイル(パーツ化) |
| 推奨される子テーマの役割 | フックによる機能追加とCSS上書き | デザインシステム(theme.json)の定義 |
クラシックテーマは、長年WordPressを支えてきた形式であり、functions.php や style.css を中心に構成されます。
一方、ブロックテーマは「フルサイト編集(FSE)」に対応した形式で、コードを書かずにエディター上で直感的に編集できる範囲が広がっています。
しかし、独自のカラーパレットやフォント設定をプロジェクト全体に固定したい場合などは、ブロックテーマでも子テーマを作成するのが効率的です。
クラシックテーマの子テーマ作成手順
まずは、従来から利用されているクラシックテーマの子テーマ作成方法を解説します。
基本的には「フォルダの作成」「style.cssの作成」「functions.phpの作成」という3つのステップで完了します。
1. 子テーマ用のフォルダを作成する
Webサーバーの /wp-content/themes/ ディレクトリ内に、新しいフォルダを作成します。
フォルダ名は任意ですが、管理のしやすさを考慮して 「親テーマ名-child」 とするのが一般的です。
例えば、親テーマが「twentytwentyfour」であれば、フォルダ名は twentytwentyfour-child とします。
2. style.cssを作成する
作成したフォルダの中に style.css ファイルを作成し、テキストエディタで以下の情報を記述します。
/*
Theme Name: Twenty Twenty-Four Child
Template: twentytwentyfour
Description: Twenty Twenty-Fourの子テーマです。
Version: 1.0.0
*/
ここで最も重要なのは Template の項目です。
ここには親テーマのディレクトリ名(フォルダ名)を正確に記述してください。
大文字・小文字も区別されるため、注意が必要です。
3. functions.phpを作成し、親テーマのスタイルを読み込む
次に、同じフォルダ内に functions.php ファイルを作成します。
このファイルで親テーマのスタイルシートを読み込む処理を記述しないと、子テーマを有効化した際に親テーマのデザインが反映されません。
<?php
/**
* 親テーマのスタイルシートをキュー(読み込みリスト)に追加する
*/
add_action('wp_enqueue_scripts', 'theme_enqueue_styles');
function theme_enqueue_styles() {
// 親テーマのハンドル名を指定してスタイルを読み込む
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
}
このコードにより、サイトのフロントエンドで親テーマのスタイルが先に読み込まれ、その後に子テーマ独自のカスタマイズが適用されるようになります。
ブロックテーマの子テーマ作成手順
2026年現在のモダンなWordPressサイト制作では、ブロックテーマが標準となっています。
ブロックテーマでの子テーマ作成は、従来のPHPベースの手法とは異なり、「theme.json」の管理が中心となります。
1. theme.jsonを活用した基本構成
ブロックテーマの子テーマでは、最低限 style.css があれば動作しますが、本格的なカスタマイズには theme.json が欠かせません。
まず、クラシックテーマと同様にフォルダを作成し、style.css にテーマ情報を記述します。
/*
Theme Name: My Block Child Theme
Template: twentytwentyfive
*/
2. theme.jsonによる設定の継承
子テーマに theme.json を配置すると、親テーマの設定を上書きしたり、新しい設定を追加したりできます。
例えば、サイト全体のメインカラーを変更したい場合は以下のように記述します。
{
"version": 3,
"settings": {
"color": {
"palette": [
{
"slug": "primary",
"color": "#0051ff",
"name": "Primary Blue"
}
]
}
}
}
ブロックテーマの場合、functions.phpでのスタイル読み込み処理が不要なケースが多いのが特徴です。
WordPressは子テーマが存在する場合、自動的に親テーマと子テーマの両方の資産を適切にマージしてくれます。
3. プラグインを利用した効率的な作成方法
手動での作成が不安な場合や、より迅速に構築したい場合は、公式プラグインである 「Create Block Theme」 を利用するのがおすすめです。
このプラグインを使用すると、管理画面上の操作だけで、現在適用しているカスタマイズ内容を含んだ子テーマを自動生成し、zipファイルとして書き出すことができます。
子テーマ運用の注意点とトラブルシューティング
子テーマは非常に便利ですが、運用の際にはいくつか注意すべき点があります。
これらを知っておくことで、予期せぬトラブルを防ぐことができます。
優先順位の理解
WordPressは、同じ名前のテンプレートファイルが親テーマと子テーマの両方に存在する場合、子テーマのファイルを優先的に読み込みます。
例えば、親テーマの header.php をカスタマイズしたい場合、そのファイルを子テーマのフォルダにコピーしてから編集します。
ただし、functions.php だけは例外で、親テーマと子テーマの両方が読み込まれる点に注意してください(子テーマの関数が先に読み込まれます)。
親テーマの更新内容のチェック
親テーマが大幅なアップデートを行った際、子テーマでコピーして編集していたテンプレートファイルの内容が古くなってしまい、不具合が発生することがあります。
親テーマでセキュリティ修正や重要な機能変更があった場合は、子テーマ側のファイルにもその変更を反映させる必要があることを忘れないでください。
パスの指定方法に注意
PHPコード内で画像や他のファイルを読み込む際、get_template_directory_uri() を使用すると「親テーマ」のURLを返してしまいます。
子テーマ内のファイルを参照したい場合は、必ず get_stylesheet_directory_uri() を使用してください。
| 関数名 | 取得できるディレクトリ | 用途 |
|---|---|---|
get_template_directory_uri() | 親テーマのディレクトリ | 親の資産を流用する場合 |
get_stylesheet_directory_uri() | 子テーマのディレクトリ | 子テーマ内の画像やJSを呼ぶ場合 |
まとめ
WordPressの子テーマ作成は、安全で柔軟なサイト運用を実現するために避けては通れないステップです。
クラシックテーマであれば style.css と functions.php を適切に設定し、ブロックテーマであれば theme.json を活用することで、親テーマの恩恵を受けつつ独自のブランドデザインを構築できます。
「親テーマは直接触らない」という原則を守ることで、将来的なセキュリティリスクやメンテナンスの手間を大幅に軽減できます。
本記事で紹介した手順を参考に、まずはシンプルな子テーマから作成し、自分だけの理想的なWordPressサイトへとカスタマイズを進めてみてください。
2026年のモダンな開発手法を取り入れることで、より効率的で堅牢なサイト管理が可能になるはずです。
