初級者~中級者向け 基本

【基本】WordPressの親テーマと子テーマって何?

WordPressのカスタマイズ
この記事は約8分で読めます。

文中の説明画像をクリックすると拡大します。

Pocket

親テーマと子テーマって何?



「子テーマ」とは、カスタマイズに必要な最小限のファイルで構成された「テーマ(親テーマ)」の分身のようなものです。


テーマのアップデートで、カスタマイズ部分が初期化されてしまう

WordPressのテーマを編集するとき、「子テーマを作って編集すべき」と言いますが、この「子テーマ」とは何でしょうか。

まず「親テーマ」とは、もともとある「テーマ」のことです(子テーマとの関係において親テーマと呼ぶだけです)。

本来はこの「テーマ(親テーマ)」だけがあればよいのですが、一概にそういうわけにはいきません。

それは、こういうことです。

あるとき、「テーマ(親テーマ)」をカスタマイズしようと思って、テーマを構成するファイル(CSSやPHPファイル)を編集したとしましょう。

すると、この編集した箇所は、(既存のテーマの場合)次のテーマのアップデートによって初期化されてしまう(消えてしまう)可能性があるのです。

カスタマイズした箇所が消えてしまったら、また一からカスタマイズし直さなければなりません。

これは時間的・体力的に、大きな損害です。記憶をたどって、元の通りに戻るかどうかもわかりません。

しかし、テーマのアップデートは欠かせない

しかしだからといって、テーマをアップデートしないわけにもいきません。

なぜならば、不具合の解消やテーマの機能の向上、そしてセキュリティの維持・向上のために、テーマの配布元によって続けられるアップデートは、適用すべきだからです。

アップデートを止めれば、いずれテーマが古い状態になってセキュリティに問題が生じたり、プラグインとの連携がとれなくなってエラーになってしまう可能性もあります。

子テーマの登場

そこで登場するのが「子テーマ」です。

「子テーマ」とは、カスタマイズに必要な最小限のファイルで構成された「テーマ(親テーマ)」の分身のようなものです。

WordPressは、親テーマと子テーマの両方を読み込んでサイトを表示します。

子テーマは、親テーマと同時に読み込まれて、親テーマのデザインや機能を引き継ぎますが、通常、アップデートの対象にはなりません。

ですから、カスタマイズが必要な時には子テーマで行うのがよいのです。

子テーマはいわば、カスタマイズ専用のテーマというわけです。

「親テーマ・子テーマ」については、「わかるWeb」の動画でも説明しています。

そもそも、テーマって何だっけという方は、こちらをご覧ください。

【基本】WordPressの「テーマ」って要するに何?
WordPressで「テーマ」といえば、サイトの外観を決める「スキン」のような性質もあり、独自の機能も併せ持つ、いわば「サイトの表示パッケージ」のようなものです。管理画面にてワンクリックで変更することができます。

 

ご注意

昨今、テーマによっては、親テーマ・子テーマの区分けがなく、ひとつのテーマそのものを編集してもアップデートの時にカスタマイズ部分が消されないと説明されているものもあるようです。詳しくは各テーマの説明をご覧ください。

子テーマのインストールの仕方

ここでは、例として「Cocoon」での子テーマのインストールの方法を見てみます。

公式テーマはWordPressの管理画面の「外観」→「テーマ」で検索してインストールできますが、「Cocoon」は公式テーマではないので、Cocoonサイトからダウンロードして、それをWordPressの機能でアップロードします。

「Cocoon」は、「Simplicity2」の後継のテーマで、非常に高機能です。

Cocoonサイトトップページの「ダウンロード」ボタンをクリックして、ダウンロードページに移動。そこで、親テーマと子テーマを両方ともダウンロードします。

実際に利用するのは子テーマの方ですが、両方アップロードすることが必要なので、いずれもダウンロードします。

管理画面の「外観」→「テーマ」で、「新規追加」をクリックして、

次画面「テーマを追加」で「テーマのアップロード」をクリック。

「ファイルの選択」をして「今すぐインストール」をクリックし、ダウンロードした「Cocoon」の親テーマと子テーマ、両方を一つずつインストールします(親テーマと子テーマの2回分やります)。

インストールしたら、「テーマ」画面に戻ります。「テーマ」画面には、親テーマと子テーマの両方が見えているので、子テーマを有効化します。

親テーマは有効化しませんが、存在していることが必要です。なぜならば、WordPressは親テーマと子テーマの両方を読み込むからです。

親テーマと子テーマの違い

フォルダ名・テーマ名が違う

「テーマ(親テーマ)」と「子テーマ」は物理的には別なテーマですから、フォルダ名もテーマ名も違います

例えば、「テーマ(親テーマ)」が「theme」であれば、「子テーマ」は「theme-child」という具合です(あくまでも例です)。

フォルダ名に「-child」とか「_chiid」とつけておくと、運営者にとっては、管理上親子関係がわかりやすいかもしれません。

もちろん、管理者が分かるのであれば、関連性のないテーマ名でもOKです。

親テーマ名が「theme」、子テーマ名が「mysite」などでもOKです。

※ただし、親テーマのフォルダ名・テーマ名を変えてしまうと、アップデートが受けられないことになりますので、親テーマの方では変更しないでください。

ファイルの数が違う

通常は、「親テーマ」は膨大なファイルがありますが、「子テーマ」は必要最小限しかありません。

「子テーマ」に最低限必要なのは、以下の2ファイルだけです。

  • functions.php
    機能を登録するファイル
  • style.css
    デザイン・体裁を制御するファイル

子テーマは編集するけど親テーマは編集しない

前述の通り、アップデートからカスタマイズ部分を守るのであれば、子テーマのファイルは編集しますが、親テーマのファイルは編集しません

親テーマはテーマの本体であり、最初の状態のまま編集せずにおいて、アップデートの対象になるのです。

もしも「親テーマの特定のファイルを編集したい」と思ったら、親テーマからそのファイルをコピーして子テーマのフォルダに入れ、それから編集します。

つまり、そのファイルを子テーマに複製してから編集します。

そうすれば、親テーマには手を付けることなく、カスタマイズが可能です。

子テーマとは、読んで上書きするためのテーマである

言い換えると、「子テーマ」とは、「親テーマ」の一部を「上書き」するためのテーマと言えます。

「上書き」と言っても、実際に「親テーマ」を書き換えるのではなく、「親テーマ」の情報を上書きするということです。

どういうことか、WordPressがテーマファイルを読む順番を見るとわかります。

  1. 最初に、必要とするファイルを「子テーマ」のフォルダで探す
  2. 「子テーマ」のフォルダに必要ファイルがあったら、それを読む
  3. 「子テーマ」のフォルダに必要ファイルがなかったら、「親テーマ」のファイルを読む

しかし、style.cssとfunctions.phpは上書きではない

ただし、style.cssは、違います。「上書き」ではありません。

style.cssは、「親テーマ」→「子テーマ」の順に読み込まれますが、「上書き」されるのではなく「追加」されるのです。

functions.php(機能を登録するファイル)も上書きではありません。以下のように読まれます。

  1. 先に、子テーマのfunctions.phpが読まれる
  2. 次に、親テーマのfunctions.phpが読まれる

こうして、親テーマと子テーマ両方のfunctions.phpが動く状態になります。

子テーマのstyle.cssの中身

子テーマのstyle.cssに記述すること(自分で子テーマを作成する場合)

※以下は、自分で子テーマを作成する場合の解説ですので、既存の子テーマを利用する場合には必要ありません。

自分で子テーマを作成する場合、style.cssの最初に最低限以下のような記述をします。

【style.css】

/*
Theme Name : Theme child(子テーマの名前)
Template : Theme-master(親テーマのフォルダ名)
*/

このstyle.cssに書かれた「Theme-master(親テーマのフォルダ名)」の部分によって、WordPressが「これは子テーマなのだ」と認識するので、重要な記述です。

※「Theme」というのは架空のテーマ名ですので、実際のテーマのフォルダ名に直してください。もし実際に「Theme」という名前のテーマがあったとしても、そのテーマを例にしているわけではありません。

親テーマのフォルダ名を正確に書かないと、子テーマとして認識されませんので、ご注意ください。

style.cssには、この最初の記述さえあれば、中身が何もなくても「子テーマ」と認識されます。

中身がなければ、「親テーマ」のstyle.cssの中身がサイトに適用されることになります。

「親テーマ」「子テーマ」に関する「わかるWeb」の書籍

「親テーマ」「子テーマ」についてまとめたKindle書籍を、販売しております(わかるWeb著)。
Amazonの「読み放題」なら無料で読めます。

親テーマと子テーマの基本的な成り立ちや仕組みを理解していただくために、できるだけわかりやすく端的な説明を心がけていますので、よろしければご購読ください。

【初級者向け】これでわかる!WordPressの親テーマ・子テーマのこと (わかるWeb)

この書籍では、次のことが分かります。

  • 「親テーマ」「子テーマ」とは何なのか
  • なぜ「親テーマ」「子テーマ」の両方が必要なのか
  • テーマの自動アップデートでは、なぜ子テーマをアップデートの対象にしてはならないのか

【目次】

  1. はじめに
  2. WordPressの「テーマ」とは何か
  3. テーマは常にアップデートする
  4. アップデートでカスタマイズ部分が消える?
  5. 子テーマの登場
  6. WordPress自動更新(自動アップデート)のさいの注意
  7. まとめ

 

まとめ

  • WordPressの「子テーマ」とは、カスタマイズした箇所をアップデートによる初期化から守るために存在する、「(親)テーマ」の分身のようなテーマ。
  • 「(親)テーマ」とは別ファイルでありながら、機能とスタイルを引き継いだカスタマイズ専用のテーマ。
  • 「子テーマ」は「(親)テーマ」と連携するため、「子テーマ」で行なったカスタマイズは画面に反映される。
  • 「(親)テーマ」がアップデート(更新)で初期化されても、「子テーマ」で行なったカスタマイズは守られる。
Pocket

タイトルとURLをコピーしました