コンテンツへスキップ
WordPressの子テーマ:概要と作成方法

WordPressの子テーマ:概要と作成方法

Can BayarCan Bayar更新日: 12 分で読めます547 閲覧

WordPressの子テーマとは何ですか?

WordPressの子テーマは、親テーマと呼ばれる別のテーマの機能、特徴、スタイルを継承するテーマです。親テーマのファイルを直接変更するのではなく、子テーマで変更を行います。これにより、親テーマが更新されてもカスタマイズが保持され、慎重に行った作業を失うことを防ぎます。

こう考えてみてください:親テーマが基盤を提供し、子テーマがその上にあなたの変更を重ねます。WordPressは最初に子テーマを読み込み、オーバーライドされていないものについては親テーマに戻ります。この継承モデルは、WordPressの最も実用的なアーキテクチャの決定の一つです。

なぜ子テーマを使用すべきですか?

子テーマを使用することは、WordPress開発者の間で標準的な実践と見なされており、それには十分な理由があります。主な利点は以下の通りです:

  • 更新の安全性:親テーマの更新があなたのカスタマイズを上書きすることはありません。あなたのコードは、更新中に手を加えられない別のディレクトリに存在します。
  • 整理されたワークフロー:すべての変更が一箇所にまとまるため、何を変更したのか、なぜ変更したのかを簡単に追跡できます。
  • 簡単なロールバック:カスタマイズに問題が発生した場合、子テーマを無効にして親テーマに即座に戻すことができます。
  • 学習の機会:子テーマを作成することで、ゼロからテーマを構築するプレッシャーなしにWordPressテーマの仕組みを学ぶことができます。
  • バージョン管理に優しい:Gitに子テーマのみをコミットすることで、リポジトリをクリーンに保ち、変更に集中できます。

子テーマとWordPressカスタマイザー:それぞれの使用時期

WordPressはサイトの外観をカスタマイズするためのいくつかの方法を提供しています。子テーマと組み込みのカスタマイザーのどちらを使用するべきかを理解することで、各状況に適したアプローチを選択できます。

機能子テーマWordPressカスタマイザー
コード変更(PHP)完全にサポートサポートされていない
テンプレートオーバーライド完全にサポートサポートされていない
CSSの変更大きな変更には推奨小さな調整に適している
テーマ更新に耐えるはいはい(テーマオプションを使用している場合)
必要な技術スキル基本的なPHP/CSSの知識コーディングは不要
ライブプレビュー手動でのリフレッシュが必要組み込みのライブプレビュー
パフォーマンスへの影響無視できる無視できる

カスタマイザーを使用するのは、シンプルな色の変更、フォントの調整、またはロゴのアップロードが必要なときです。 子テーマを使用するのは、テンプレートファイルを変更したり、カスタム関数を追加したり、レイアウトに構造的な変更を加えたりする必要があるときです。

子テーマを手動で作成する方法

子テーマを作成するには、style.cssfunctions.phpの2つのファイルだけが必要です。以下はステップバイステップの手順です。

ステップ1:子テーマディレクトリを作成する

FTPまたはホスティングファイルマネージャーを介してWordPressインストールに接続します。wp-content/themes/に移動し、新しいフォルダーを作成します。命名規則は親テーマ名-childです。たとえば、親テーマがAstraの場合、フォルダー名はastra-childとします。

ステップ2:style.cssを作成する

新しいフォルダー内に、次のヘッダーを持つstyle.cssというファイルを作成します:

/*
 テーマ名:   Astra Child
 テーマURI:    https://yoursite.com
 説明:  Astraの子テーマ
 作者:       あなたの名前
 テンプレート:     astra
 バージョン:      1.0.0
*/

Template行は重要です。親テーマのディレクトリ名(表示名ではなく)と正確に一致する必要があります。wp-content/themes/を確認して、正確なフォルダー名を確認してください。

ステップ3:functions.phpを作成する

親テーマと子テーマのスタイルシートを適切にエンキューするfunctions.phpファイルを作成します:

<?php
function child_theme_enqueue_styles() {
    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'),
        wp_get_theme()->get('Version')
    );
}
add_action('wp_enqueue_scripts', 'child_theme_enqueue_styles');

このアプローチにより、親スタイルシートが最初に読み込まれ、その後に子テーマのスタイルが続き、正しいカスケード順序が維持されます。

ステップ4:子テーマを有効化する

WordPressダッシュボードの外観 > テーマに移動します。子テーマがリストに表示されるはずです。有効化をクリックします。子テーマは親テーマからすべてを継承するため、サイトは以前と同じように見えるはずです。

プラグインを使用して子テーマを作成する

子テーマの作成方法

ノーコードアプローチを好む場合、いくつかのプラグインが子テーマを生成してくれます。最も広く使用されているオプションはChild Theme Configuratorプラグインです。以下はその使い方です:

  1. プラグイン > 新規追加からChild Theme Configuratorプラグインをインストールして有効化します。
  2. ツール > 子テーマに移動します。
  3. ドロップダウンから親テーマを選択します。
  4. 分析をクリックして潜在的な問題をチェックします。
  5. 新しい子テーマを作成をクリックします。
  6. プラグインが必要なすべてのファイルを生成し、オプションでウィジェットとメニューの設定をコピーします。

この方法は速いですが、初期設定に対するコントロールが少なくなります。制作サイトでは、手動プロセスを理解することが価値があります。なぜなら、後で発生する可能性のある問題をトラブルシュートするのに役立つからです。

子テーマでの一般的なカスタマイズ

子テーマがアクティブになったら、変更を開始できます。以下は最も頻繁に行われるカスタマイズシナリオです。

テンプレートファイルの上書き

テンプレートファイルを変更するには、親テーマのディレクトリから子テーマのディレクトリにコピーし、同じフォルダ構造を維持します。たとえば、シングルポストテンプレートをカスタマイズするには:

  1. 親テーマのフォルダ内でsingle.phpを見つけます。
  2. それを子テーマのフォルダにコピーします。
  3. 子テーマ内のコピーを編集します。

WordPressは自動的に親の代わりに子テーマのバージョンを使用します。

カスタムCSSの追加

子テーマのstyle.cssファイルにCSSルールを追加します。ヘッダーコメントの下に配置します。子テーマのスタイルシートは親の後に読み込まれるため、あなたのルールが優先されます:

/* カスタムヘッダー背景 */
.site-header {
    background-color: #2c3e50;
    padding: 20px 0;
}

/* 投稿タイトルのサイズ調整 */
.entry-title {
    font-size: 2rem;
    line-height: 1.3;
}

カスタム関数の追加

子テーマのfunctions.phpは親のものに加えて実行されます(代わりにではありません)。カスタムショートコード、ウィジェットエリア、投稿タイプを追加したり、WordPressフックを使用して既存の動作を変更できます:

// カスタムウィジェットエリアを追加
function child_register_sidebar() {
    register_sidebar(array(
        'name'          => 'カスタムサイドバー',
        'id'            => 'custom-sidebar',
        'before_widget' => '<div class="widget">',
        'after_widget'  => '</div>',
    ));
}
add_action('widgets_init', 'child_register_sidebar');

ヘッダーとフッターのカスタマイズ

header.phpまたはfooter.phpを親テーマから子テーマにコピーし、変更します。これにより、カスタムナビゲーション要素、トラッキングスクリプト、またはこれらの重要な領域への構造的変更を追加できます。

子テーマを使用しないべき場合

子テーマは常に正しい解決策ではありません。以下は代替案がより理にかなっているシナリオです:

  • 軽微なCSSの調整:数行のCSSの場合、カスタマイザーの追加CSSセクションを使用します。3つのCSSルールのために子テーマを作成することは不必要な複雑さを加えます。
  • 機能の追加:テーマに関連しない機能(カスタム投稿タイプ、ショートコード、統合)を追加する場合は、カスタムプラグインを使用してください。これにより、機能がテーマに依存しなくなります。
  • ページビルダーサイト:Elementor Proや類似のページビルダーで完全に構築する場合、ほとんどのカスタマイズはビルダー内で行われます。子テーマはここではほとんど価値を追加しません。
  • スターターテーマ:完全にカスタムデザインを構築する場合は、Underscores (_s)のようなスターターテーマから始めるか、フレームワークを使用してください。子テーマは親のデザインを保持したいことを示唆します。

子テーマのための親テーマの選択

すべての親テーマが子テーマ開発に同じように適しているわけではありません。良好にコーディングされていて、定期的に更新され、拡張性を考慮して設計されたテーマを探してください。人気のある選択肢には以下が含まれます:

  • Astra Pro軽量なコードベース、広範なフックシステム、子テーマ開発者向けの明確なドキュメントで知られています。Astraは子テーマのカスタマイズのために特に多くのアクションとフィルターフックを提供します。
  • GeneratePress Premiumクリーンで構造化されたコードベースを提供し、モジュラーコンポーネントを備えています。そのフックシステムにより、テンプレートファイルを上書きすることなく、さまざまなポイントでコンテンツを挿入できます。

両方のテーマは、更新を通じて後方互換性を維持しており、時間の経過とともに安定性を保つ必要がある子テーマを構築する際に重要です。

一般的な子テーマの問題のトラブルシューティング

経験豊富な開発者でも子テーマに関する問題に直面することがあります。以下は最も一般的な問題への解決策です:

問題考えられる原因解決策
問題原因解決策
アクティベーション後の白い画面functions.phpのPHP構文エラーFTPを介してファイルにアクセスし、タイプミス、セミコロンの欠落、または閉じられていない括弧を確認してください
スタイルが適用されない不正なエンキュー順序または親スタイルの欠落wp_enqueue_styleの依存配列を確認してください
テンプレートオーバーライドが機能しない不正なファイルパスまたは命名子テーマのファイルパスが親テーマの構造と正確に一致していることを確認してください
ダッシュボードにテーマが表示されないstyle.cssの不正なTemplate値Templateが親のディレクトリ名と一致していることを確認してください(大文字と小文字を区別)
関数が二重に実行される親と子の両方が同じ関数を定義しているfunction_exists()チェックまたは異なる関数名を使用してください

子テーマフォルダ構造の参考

整理された子テーマは次の構造に従います:

your-theme-child/
├── style.css              (必須 - テーマヘッダー + カスタムCSS)
├── functions.php          (必須 - スタイルのエンキュー + カスタム関数)
├── screenshot.png         (オプション - テーマサムネイル)
├── header.php             (オプション - ヘッダーオーバーライド)
├── footer.php             (オプション - フッターオーバーライド)
├── single.php             (オプション - シングルポストオーバーライド)
├── page.php               (オプション - ページオーバーライド)
├── template-parts/        (オプション - 部分オーバーライド)
│   └── content-single.php
├── assets/                (オプション - カスタムアセット)
│   ├── css/
│   ├── js/
│   └── images/
└── woocommerce/           (オプション - WooCommerceオーバーライド)
    └── single-product.php

親テーマの選択に関する詳細は、2026年にWordPressテーマを選ぶ方法に関するガイドをご覧ください。子テーマを作成する前にテーマをインストールする必要がある場合は、WordPressテーマインストールチュートリアルを確認してください。

詳細については、公式ドキュメントを参照してください: 子テーマドキュメント, テーマハンドブック.

よくある質問

WordPress自体を更新すると、子テーマのカスタマイズは失われますか?

いいえ。WordPressコアの更新はテーマに影響を与えません。子テーマとその親テーマは、wp-content/themes/のそれぞれのディレクトリに残ります。親テーマの更新のみが互換性の問題を引き起こす可能性がありますが、子テーマのファイルはそのままです。

子テーマの子テーマ(孫テーマ)を持つことはできますか?

WordPressは孫テーマをネイティブにサポートしていません。子テーマは親テーマからのみ継承できます。他の子テーマからは継承できません。複数のカスタマイズレイヤーが必要な場合は、子テーマとカスタムプラグインの組み合わせを使用してください。

子テーマは私のウェブサイトを遅くしますか?

子テーマのパフォーマンスへの影響はごくわずかです。WordPressは追加のstyle.cssfunctions.phpファイルを読み込み、ページの読み込み時間にミリ秒の一部を追加します。このオーバーヘッドは実際の条件では測定できません。

任意のWordPressテーマで子テーマを使用できますか?

技術的には可能ですが、一部のテーマは他のテーマよりも子テーマとの互換性が高いです。WordPressのコーディング標準に従い、適切なフックシステムを使用するテーマは拡張が容易です。ハードコーディングされたパスや独自のフレームワークに大きく依存するテーマは、予期しない動作を引き起こす可能性があります。

ステージングサイトから本番環境に子テーマを移行するにはどうすればよいですか?

子テーマフォルダ全体をwp-content/themes/your-child-theme/から本番サーバーの同じ場所にコピーします。その後、WordPressダッシュボードからアクティブ化します。子テーマが特定のURLを参照している場合は、移行後にそれらを更新してください。

Underscoresのようなスターターテーマで子テーマを使用すべきですか?

Underscoresのようなスターターテーマは直接修正するために設計されています。カスタムテーマの出発点として意図されており、子テーマの親テーマとしては使用されません。直接修正し、バージョン管理で変更を追跡してください。

親テーマを無効にするとどうなりますか?

親テーマが無効化または削除されると、子テーマは機能しなくなります。WordPressは親テーマなしでは子テーマを読み込むことができません。子テーマのみを使用している場合でも、親テーマは常にインストールしておいてください。

堅実な基盤の上に構築する

Astra Proは広範なフックサポートとクリーンなコードアーキテクチャを提供し、子テーマプロジェクトの信頼できる親テーマとなります。

Astra Proを探る →

よくある質問

カスタマイザーだけを使用する場合、子テーマは必要ですか?
カスタマイザーで利用可能なオプション(色、フォント、メニュー、ウィジェット)に限られるカスタマイズの場合、子テーマは厳密には必要ありません。カスタマイザーは設定をデータベースに保存し、テーマの更新を通じて持続します。
子テーマは私のウェブサイトを遅くしますか?
適切に作成された子テーマは、ほとんど無視できるオーバーヘッドを追加します。追加の小さなCSSファイルとfunctions.phpファイルが読み込まれますが、実際のパフォーマンスへの影響は測定不可能です。
任意のWordPressテーマの子テーマを作成できますか?
はい、任意のWordPressテーマの子テーマを作成できます。ただし、DiviやAvadaのようなテーマには独自のカスタマイズシステムがあり、子テーマがあまり必要でない場合があります。特定の推奨事項についてはテーマのドキュメントを確認してください。
親テーマを変更した場合、子テーマはどうなりますか?
子テーマは特定の親テーマに結び付けられています。異なる親テーマに切り替えると、子テーマは機能しなくなります。新しい親テーマに基づいて新しい子テーマを作成し、カスタマイズを移行する必要があります。
子テーマの変更を失わずに親テーマを更新するにはどうすればよいですか?
それが子テーマの解決策です。親テーマを更新すると、親テーマのファイルのみが置き換えられます。子テーマのファイルはそのまま残り、カスタマイズは自動的に保持されます。

この投稿をシェア

著者について

Can Bayar
Can Bayar

WordPressエキスパート

プラグインとテーマの開発で10年以上の経験を持つシニアWordPress開発者。WooCommerce、Elementor、パフォーマンス最適化を専門としています。

WordPressWooCommerceElementorPHPJavaScriptパフォーマンス最適化

最新情報を入手

最新のWordPressのヒントとチュートリアルをメールで受け取りましょう。