分析中です…しばらくお待ちください

MIKIYA KUBO


WordPressサイトの進化に対応する子テーマ作成の重要性

WordPressを利用したウェブサイト制作において、テーマのカスタマイズは避けて通れない工程でございます。しかしながら、親テーマを直接編集してしまうと、その親テーマがアップデートされた際に、せっかく加えたカスタマイズがすべて失われてしまうリスクがございます。このような問題を解決し、安全かつ持続可能なカスタマイズを実現するために不可欠なのが「子テーマ」でございます。

本記事では、WordPressの子テーマをゼロから作成する具体的な手順を、2026年現在の最新のベストプラクティスに基づいて詳細にご説明いたします。WordPressは近年、フルサイト編集(FSE)を核とするブロックテーマの導入により、その構造とカスタマイズ方法が大きく進化いたしました。これに伴い、従来のクラシックテーマだけでなく、ブロックテーマにおける子テーマの役割と作成方法についても深掘りして解説いたします。

アイコン
親テーマ更新時のカスタマイズ消失を防ぐ子テーマは、安全かつ持続的なサイト運用に不可欠でございます。将来的なメンテナンス性も向上いたします。

この記事をお読みいただくことで、読者の皆様は、親テーマのアップデートに左右されずにサイトを安全にカスタマイズできるようになり、WordPress制作における重要なスキルを習得できるかと存じます。具体的なコード例や実践的なヒントを交えながら、子テーマ作成の「知りたい」「やりたい」に明確にお答えしてまいります。

子テーマとは何か?その重要性と2026年現在の役割

子テーマとは、既存のテーマ(親テーマ)の機能やスタイルをすべて継承しつつ、独自のカスタマイズを加えるためのテーマでございます。親テーマのファイルを直接編集するのではなく、子テーマ内で必要な部分のみを上書きまたは追加するため、親テーマのアップデートが提供されても、子テーマ側の変更が失われることはございません。

2026年現在、WordPressの進化、特にブロックテーマの普及により、子テーマの役割にも若干の変化が見られます。従来のクラシックテーマでは、主にCSSの調整やPHPテンプレートファイルの変更が子テーマの主な用途でございました。しかし、ブロックテーマの時代においては、theme.jsonを介したグローバルスタイルの上書きや、特定のブロックテンプレート・テンプレートパーツ(HTMLファイル)のカスタマイズが子テーマの重要な役割となっております。いずれのテーマタイプにおいても、子テーマはWordPressサイトの長期的な運用とメンテナンスにおいて、極めて重要な存在であることに変わりはございません。

子テーマ作成の準備

子テーマを作成する前に、以下の準備をお願いいたします。

  • **FTPクライアントまたはレンタルサーバーのファイルマネージャー:** WordPressがインストールされているサーバーへアクセスし、ファイルをアップロード・編集するために必要でございます。
  • **テキストエディタ:** style.cssfunctions.phpなどのコードファイルを編集するために必要でございます。(例: Visual Studio Code, Sublime Textなど)
  • **親テーマの確認:** 子テーマを作成したい親テーマの「ディレクトリ名」を正確に把握しておく必要がございます。WordPress管理画面の「外観」→「テーマ」で、対象テーマの詳細をご覧いただければ確認できます。

【実践】クラシックテーマ向け子テーマの作成手順

まず、現在も多くのサイトで利用されているクラシックテーマ向けの子テーマ作成手順からご説明いたします。

1. 子テーマ用ディレクトリの作成

FTPクライアントまたはファイルマネージャーを使用し、WordPressのインストールディレクトリ内にあるwp-content/themesフォルダにアクセスいたします。この中に、任意の名前で新しいディレクトリを作成してください。例えば、親テーマが「Twenty Twenty-One」であれば、「twentytwentyone-child」といった名前にするのが一般的でございます。

2. style.cssファイルの作成

作成した子テーマディレクトリ内に、style.cssという名前のファイルを新規作成し、以下の内容を記述してください。

/*
Theme Name: 親テーマ名の子テーマ
Theme URI: https://example.com/ (子テーマの公式サイトURL、任意)
Description: 親テーマ名の子テーマです。
Author: あなたの名前
Author URI: https://example.com/ (作者のURL、任意)
Template: 親テーマのディレクトリ名
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-child-theme
*/

このヘッダー情報の中で最も重要なのがTemplate: 親テーマのディレクトリ名でございます。ここに親テーマのディレクトリ名を正確に記述することで、WordPressがこのテーマを子テーマとして認識いたします。大文字・小文字も区別されますので、ご注意ください。

3. functions.phpファイルの作成と親テーマスタイルの読み込み

子テーマディレクトリ内に、functions.phpという名前のファイルを新規作成し、以下の内容を記述してください。このファイルは、親テーマの機能に影響を与えず、子テーマ独自の機能を追加するために使用いたします。

<?php
/**
 * 子テーマのスタイルシートとスクリプトをエンキューする関数
 */
if ( ! function_exists( 'my_child_theme_enqueue_styles' ) ) {
    function my_child_theme_enqueue_styles() {
        // 親テーマのスタイルシートを読み込む
        // 'parent-style' は任意のハンドル名
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

        // 子テーマ独自のスタイルシートを読み込む
        // 親テーマのスタイルシートが読み込まれた後に実行されるように依存関係を設定
        wp_enqueue_style( 'child-style',
            get_stylesheet_directory_uri() . '/style.css',
            array( 'parent-style' ), // 'parent-style' に依存
            wp_get_theme()->get('Version') // 子テーマのバージョンを付与
        );
    }
}
add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );
?>

かつては@import規則をstyle.cssに記述して親テーマのスタイルを読み込む方法もございましたが、これはパフォーマンス上の理由から非推奨とされております。wp_enqueue_style()関数を使用することで、スクリプトやスタイルシートを適切にキューに追加し、読み込み順序や依存関係を管理することが、2026年現在のベストプラクティスでございます。

実際にこの手順で子テーマを作成し、functions.phpで親テーマのスタイルを読み込んだ際、以前@importを使っていた時よりもページの読み込み速度が向上したことを確認いたしました。これは、ブラウザがCSSファイルを並列でダウンロードできるようになったためと考えられます。get_template_directory_uri()は親テーマのディレクトリ、get_stylesheet_directory_uri()は子テーマのディレクトリを指す点にご留意ください。

アイコン
子テーマ作成は、WordPressの更新時にもカスタマイズが上書きされないため、サイト運営の安定に不可欠でございます。

4. 子テーマの有効化

WordPress管理画面の「外観」→「テーマ」にアクセスすると、作成した子テーマが表示されているかと存じます。それを「有効化」してください。これで、クラシックテーマの子テーマ作成は完了でございます。

【実践】ブロックテーマ向け子テーマの作成手順

フルサイト編集(FSE)に対応したブロックテーマの場合、子テーマの作成とカスタマイズの考え方が少し異なります。

1. 子テーマ用ディレクトリの作成

クラシックテーマと同様に、wp-content/themesフォルダ内に子テーマ用のディレクトリを作成いたします。例えば、親テーマが「Twenty Twenty-Four」であれば、「twentytwentyfour-child」といった名前が適切でしょう。

2. style.cssファイルの作成(テーマ情報のみ)

ブロックテーマの場合、style.cssは必須ではございませんが、テーマのメタ情報をWordPressに認識させるために作成することが推奨されます。内容はクラシックテーマの場合と同様ですが、親テーマのスタイルを@importしたり、大量のCSSを記述したりする必要はほとんどございません。

アイコン
子テーマのディレクトリ名は、親テーマとの関連性が分かりやすい命名が管理上大切でございます。後々の運用を見越した設計をお勧めいたします。
/*
Theme Name: 親テーマ名の子テーマ
Template: 親テーマのディレクトリ名
Version: 1.0.0
*/

子テーマ独自のCSSを追加したい場合は、functions.phpwp_enqueue_style()を用いて別途読み込むのが一般的です。

アイコン
ブロックテーマではstyle.cssは必須ではございませんが、テーマのメタ情報を認識させるために作成を推奨いたします。 親テーマのスタイル@importは不要で、効率的なカスタマイズ

3. functions.phpファイルの作成(必要に応じて)

ブロックテーマでも、クラシックテーマと同様にfunctions.phpを作成し、カスタム関数やショートコード、特定のスクリプトのエンキューなど、PHPによる機能拡張を行うことが可能でございます。

4. theme.jsonによるスタイルのカスタマイズ

ブロックテーマのカスタマイズの中核をなすのがtheme.jsonファイルでございます。子テーマのディレクトリ内にtheme.jsonを作成することで、親テーマのグローバルスタイル(色、タイポグラフィ、レイアウトなど)を上書きしたり、拡張したりすることが可能でございます。

例えば、親テーマの色パレットに新しい色を追加したい場合、以下のように記述いたします。

{
    "version": 2,
    "settings": {
        "color": {
            "palette": [
                {
                    "slug": "primary",
                    "color": "#0073aa",
                    "name": "Primary"
                },
                {
                    "slug": "secondary",
                    "color": "#22a4b8",
                    "name": "Secondary"
                },
                {
                    "slug": "custom-green",
                    "color": "#4CAF50",
                    "name": "Custom Green"
                }
            ]
        },
        "typography": {
            "fontFamilies": [
                {
                    "fontFamily": "Inter, sans-serif",
                    "slug": "inter",
                    "name": "Inter"
                }
            ]
        }
    }
}

このtheme.jsonは、親テーマのtheme.jsonとマージされます。子テーマで定義された設定は、親テーマの設定よりも優先されますので、特定のスタイルを上書きしたい場合に非常に有効でございます。

5. テンプレートファイル(HTML)のカスタマイズ

ブロックテーマでは、templatesディレクトリやpartsディレクトリ内にHTML形式のテンプレートファイルが配置されております。これらのファイルを子テーマの同じパスにコピーし、修正することで、特定のページやヘッダー・フッターなどのテンプレートパーツをカスタマイズすることが可能でございます。

例えば、親テーマのtemplates/index.htmlをカスタマイズしたい場合、子テーマのディレクトリ内にtemplates/index.htmlを作成し、その内容を編集いたします。

6. 子テーマの有効化

クラシックテーマと同様に、WordPress管理画面の「外観」→「テーマ」から作成した子テーマを有効化してください。

子テーマでよく利用するファイルとカスタマイズの例

子テーマを作成した後、どのようなファイルを編集してカスタマイズを行うのか、具体的な例をご紹介いたします。

  • functions.php: カスタム投稿タイプ、カスタムタクソノミーの追加、ショートコードの作成、WordPressのフック(アクション・フィルター)を利用した機能の追加・変更など。
  • single.php, page.php, archive.phpなど: 記事ページ、固定ページ、アーカイブページなどのレイアウトや表示内容を変更したい場合に、親テーマから該当ファイルをコピーして編集いたします。
  • header.php, footer.php, sidebar.php: ヘッダー、フッター、サイドバーの表示内容を変更したい場合に利用いたします。
  • template-partsディレクトリ内のファイル: 親テーマがテンプレートパーツとして分割しているファイルをカスタマイズする場合。
  • style.css(クラシックテーマ): 主にCSSを追記し、親テーマのスタイルを上書きしたり、新しいスタイルを追加したりいたします。
  • theme.json(ブロックテーマ): グローバルスタイル、色、タイポグラフィ、レイアウト、カスタムブロックの設定などを上書き・拡張いたします。

子テーマ運用におけるベストプラクティス

  • **変更履歴の管理:** Gitなどのバージョン管理システムを導入し、子テーマの変更履歴を管理することをお勧めいたします。これにより、問題が発生した際に以前の状態に戻したり、複数人での開発を効率化したりすることが可能でございます。
  • **最小限の変更に留める:** 子テーマでのカスタマイズは必要最小限に留めることを強くお勧めいたします。なぜならば、過度な変更は親テーマのアップデート時に競合を引き起こす可能性があり、将来的なメンテナンスコストを増大させるためでございます。本当に必要な部分だけを上書き・追加するように心がけましょう。
  • **親テーマのアップデートへの対応:** 親テーマがアップデートされた際は、その変更内容を確認し、子テーマのカスタマイズに影響がないか確認することが重要でございます。特にブロックテーマの場合、theme.jsonの仕様変更や新しいブロックの追加などにも注意が必要でございます。

よくある問題と解決策

子テーマの作成・運用で遭遇しやすい問題とその解決策をご紹介いたします。

アイコン
手動での子テーマ作成は、仕組みの理解を深める上で大変有効でございます。 一方で、プラグイン活用も効率的ですので、状況に合わせてご検討いただければと存じます。
  • **子テーマが有効化できない:** style.cssのヘッダー情報、特にTemplate:の記述が間違っている可能性がございます。親テーマのディレクトリ名を正確に(大文字・小文字も区別して)記述しているかご確認ください。
  • **親テーマのスタイルが反映されない(クラシックテーマ):** functions.phpwp_enqueue_style()を使って親テーマのスタイルを正しく読み込んでいるかご確認ください。古い@import方式は非推奨であり、期待通りに動作しないことがございます。
  • **カスタマイズが反映されない:**
    • **キャッシュの問題:** WordPressのキャッシュプラグインやサーバー側のキャッシュが原因で、変更がすぐに反映されないことがございます。キャッシュをクリアしてから再度ご確認ください。
    • **ファイルパスのミス:** コピーしたテンプレートファイルや画像のパスが間違っている可能性がございます。
    • **CSSの優先順位:** 親テーマのスタイルが子テーマのスタイルよりも優先されている場合がございます。子テーマのCSSに!importantを付与したり、より具体的なセレクタを使用したりして優先順位を調整してみてください。
  • **FTPアップロード時のエラー:** ファイルのパーミッション設定が正しくない場合や、バイナリモードとアスキーモードの選択ミスがある場合に発生することがございます。

【比較】子テーマ作成プラグインの選択肢

子テーマの作成は手動で行うのが最も確実で理解が深まる方法ですが、Child Theme Configuratorのようなプラグインを利用することで、より手軽に子テーマを作成することも可能でございます。それぞれのメリット・デメリットを比較してみましょう。

手動作成のメリット・デメリット

  • **メリット:** 子テーマの構造やWordPressのテーマの仕組みに対する理解が深まります。カスタマイズの自由度が高く、不要なファイルを生成しないため、クリーンな環境を保てます。
  • **デメリット:** 初めての方には少し手間がかかります。ファイルのアップロードやコードの記述に慣れが必要でございます。

プラグイン利用のメリット・デメリット(例: Child Theme Configurator)

  • **メリット:** 数クリックで子テーマを生成でき、非常に手軽でございます。CSSのコピーやエンキューを自動で行ってくれる機能を持つものもございます。
  • **デメリット:** プラグインが生成するコードやファイル構造を完全に把握しづらいことがございます。複雑なカスタマイズを行う際には、結局手動での編集が必要になるケースもございます。また、プラグイン自体の更新状況にも左右されます。

以前、急ぎの案件でプラグインを使って子テーマを作成したことがございましたが、特定のカスタマイズで親テーマの関数をフックする必要が生じた際、手動でfunctions.phpを編集する方が柔軟に対応できると感じました。手動での作成経験が、その後のトラブルシューティングにも役立ったと実感しております。シンプルなカスタマイズであればプラグインも有効な選択肢となり得ますが、内部構造を理解するためには、一度は手動作成を経験することをお勧めいたします。

まとめ

本記事では、WordPressの子テーマ作成について、2026年現在の最新の動向を踏まえ、クラシックテーマとブロックテーマの両方に対応した具体的な手順とベストプラクティスを詳細にご説明いたしました。

子テーマは、親テーマのアップデートからサイトのカスタマイズを保護し、安全で持続可能なWordPressサイト運用を実現するために不可欠な存在でございます。特に、ブロックテーマの普及により、theme.jsonを活用したグローバルスタイルのカスタマイズやHTMLテンプレートの上書きといった新たなアプローチが加わりました。これらの知識を習得し、適切に子テーマを運用することで、将来にわたって安心してWordPressサイトをカスタマイズ・管理できるようになるかと存じます。

今回ご紹介した手順やヒントが、読者の皆様のWordPress制作の一助となれば幸いでございます。常に最新の情報をキャッチアップし、安全で効率的なサイト制作を目指してまいりましょう。

XでシェアFacebookでシェアThreadsでシェア