WordPressテーマをカスタマイズするなら子テーマを使った方が良い理由、使い方など

WordPress既存テーマをカスタマイズするなら子テーマを使うべきと思います。

これは、Wordpress codexにある子テーマの項目でも推奨されています。

ただ、Wordpressを使い始めたばかりの時に「子テーマ」「親テーマ」と言われても、「何だそれ?」とか、「そもそもテーマ自体にカスタマイズしたらなんでだめなの?」とも思うかもしれません。

僕も、テーマ配布サイトでカスタマイズ用に子テーマを配布してはいるものの、そういったことについては詳しく説明していませんでした。

なので、一度それについて書いておこうと、今回はWordpressの子テーマについて書きたいと思います。

photo by Alexander Gounder

スポンサーリンク
広告

子テーマとは

そもそも子テーマとは、既存のWordpressテーマのカスタマイズ専用のテーマです。

既存のWordpressテーマは、「親テーマ」とも呼ばれ、テーマの機能とスタイルを継承したものが「子テーマ」です。

  • 親テーマ:既存のWordpressテーマ
  • 子テーマ:親テーマに属し、機能とスタイルを引き継いだ上で編集するためのテーマ

図にするとこんな感じです。

子テーマの仕組みを図解

「親テーマ(既存のテーマ)」の機能とスタイルを「子テーマ」が引き継いだところに、スタイルなどの変更(カスタマイズ)を加え、ブラウザに表示させます。

このように、書いてもまだちょっとややこしいとは思います。

そもそも「なぜ、こんなややこしいことをして子テーマを使うのか?」と思われるかもしれません。

それについては、以下で説明していきます。

なぜ子テーマでカスタマイズする必要があるのか

子テーマは、Wordpressを始めたばかりの方にとって、ややこしい概念だと思います。

実際に、僕も最初は、よくわかりませんでした。

そんな、ややこしい、よくわからないことをするのは面倒なので「親テーマを直接カスタマイズすればいいのでは?」とも思われるかもしれません。

もちろん、親テーマを直接カスタマイズして使用するのも、その人の自由です。ただ、親テーマを直接カスタマイズすると以下のような難点があります。

親テーマを直接カスタマイズした場合

WordPressの「親テーマ(既存のテーマ)」は、機能などが追加されたりするとアップデートを行います。公式テーマなどは、自動でアップデートが行われます。

親テーマは、アップデートが行われると、親テーマに施されたカスタマイズはお構いなしに、すべてのファイルが上書きされ、カスタマイズはなかったことになってしまいます。

親テーマをカスタマイズした場合

これまで「カスタマイズしたけど、テーマはアップデートしたら元に戻ってしまったことがある」という方も結構おられるのではないでしょうか。僕もあります。

それまで、テーマのカスタマイズに何時間かけようと、ポチッと「テーマの更新」ボタンを押してしまえば、全ての苦労が無に期してしまいます。同様のカスタマイズをしようと思ったら、また1から編集するしかありません。

なので、親テーマをカスタマイズすることは基本的に「次のアップデートまでしか効果のない掛け捨ての手間」になってしまいます。

子テーマをカスタマイズした場合

では、子テーマにカスタマイズを施した場合は、どうなるかというと以下のようになります。

子テーマをカスタマイズした場合

子テーマにカスタマイズを施すことによって、子テーマ側で行われた変更(カスタマイズ)は、テーマがアップデートされた後も、確実に保持されます。

最初こそ、子テーマのセットアップという手間がかかりますが、子テーマに施されたカスタマイズは、何度、親テーマをアップデートしようと、変更した部分は必ず残るということが保証されています。

なので、子テーマをカスタマイズすることは、「貯蓄型」となります。子テーマを、さらにカスタマイズしようと思えば、子テーマ上にさらに編集を加えていくことで、どんどんカスタマイズが上積みされていきます。

ですので、Wordpress運営者にとっては、「子テーマ」はテーマをカスタマイズする上での「ちょっとした財産」と言っていいと思います。

子テーマの作り方

では、カスタマイズを保持するための「子テーマ」を作るにはどうしたらよいかを以下で説明したいともいます。

最近では、子テーマ自体を配布しているテーマも多いので、既に子テーマある場合は、そっちを利用した方が良いと思います。

もう子テーマがある場合は、次の項目まで飛ばしてください。

子テーマを作る主な手順

子テーマを作るには、以下のようなちょっとした手順が必要です。

  1. 子テーマのフォルダを作る
  2. 子テーマに必要なファイルを作る
  3. 親テーマを継承するためのコードを書く

やることといったらこの3つです。それぞれの手順もたいしたことをしないので、5分もあれば終わる作業です。

以下では、Wordpressデフォルトで付属している「Twenty Fifteen」の子テーマの作り方を例にして説明したいと思います。

子テーマのフォルダを作る

まずは、子テーマ用のフォルダを作ります。名前は何でも構いません。(半角英数字+α)

「Twenty Fifteen」の子テーマなので、「twentyfifteen-child」とでもしてフォルダを作成すればOKです。

twentyfifteen-childフォルダを作成

1つ目の手順はたったこれだけです。

子テーマに必要なファイルを作る

次に、作成したフォルダの中に以下の2つの空ファイルを作成します。

  • style.css
  • functions.php

子テーマに必要なファイルを作成

こちらも難なくできると思います。

親テーマを継承するためのコードを書く

最後に、子テーマ用のコードを記入します。

style.cssの編集

style.cssには、子テーマ情報を以下のように記入します。

他のテーマで利用するには、上記のコードを、コピーしてstyle.cssに貼り付けて必要な部分を編集すればOKです。

特に必要な記入項目は以下です。その他の項目は、必要なければ無理して書く必要はないと思います。

  • Theme Name:子テーマを識別するための名前を書く
  • Template:親テーマのフォルダ名を書く

簡易版は以下になります。

他のテーマで利用するには、名前を変更し、「twentyfifteen」部分を他のテーマの親テーマフォルダ名にします。

functions.phpの編集

functions.phpでは、親テーマのstyle.cssがちゃんと、子テーマを適用した際にも呼び出されるようにするコードを記入します。

functions.phpを開いて以下のコードをコピペします。

これを書くことにより、親テーマのスタイルが子テーマに引き継がれます。

以前は、子テーマ側のstyle.cssで@importを利用して呼び出す方法が主流でしたが、「@importを利用すると呼び出しが遅くなる」などの弊害があるので、functions.php側で呼び出す方法が現在推奨されています。

子テーマの有効化

最後にWordpress管理画面から「外観→テーマ」を選択して、作成した子テーマを有効化します。

子テーマの有効化

これで、子テーマの設定は完了です。

この子テーマを適用した状態は、親テーマをそのまま表示した状態と変わりがありません。

しかし、子テーマのstyle.cssにスタイルを書き足していったり、テンプレートを追加してカスタマイズしていくことによって、デザインなどを自由に変更することができるようになります。

子テーマを呼び出す仕組み

ここで、子テーマがどのように呼び出されるかの仕組みも簡単に説明しておきたいと思います。(※詳しく書くと長くなりすぎるので)

カスタマイズをする上で、この仕組みを少し知っておくだけで、やりたいことができるようになります。

まず、全体のデザインの土台となる「親テーマ」があり、カスタマイズ用ファイルのみがある「子テーマ」を通して呼び出され、ブラウザで表示されます。

子テーマの呼び出しの仕組み

図を見ていただけるとわかるように、「style.css(スタイルファイル)」と「functions.php(関数ファイル)」の2つのファイルは「親テーマ」「子テーマ」双方にあるファイルがどちらも呼び出されます

反面、テンプレートファイルは子テーマにあるものが優先して読み込まれ表示されます。(親テーマのものは呼び出されない)

なので、例えば投稿ページ部分を編集したければ、親テーマの「single.php」を子テーマ内にコピーして、そのテンプレートファイルをカスタマイズすれば、「カスタマイズした子テーマ内のsingle.php」が優先して呼び出されます。

その他のテンプレートファイルも、もちろん同名のテンプレートファイルを子テーマ内に置くと、そのファイルが優先して呼び出されます。

その後、親テーマにアップデートがあった場合でも、子テーマのテンプレートファイルが呼び出されるので、カスタマイズした部分は保持されます。

カスタマイズしたテンプレートに親テーマ側で新機能が追加されたときは、その恩恵が受けられないという難点はあります。

まとめ

以上、簡単ではありますが子テーマの概要についてまとめてみました。

以前、配布しているWordpressテーマに自動アップデート機能を付けたところ、「余計な機能をつけたせいでカスタマイズが全部消えてしまったじゃないか」と言われたことがあるので、1度子テーマの必要性について書いておこうと思いました。

子テーマを利用すると、親テーマのアップデートの恩恵を受けながら、カスタマイズにかけた手間を蓄積しておくことができます。

ですので、「親テーマをカスタマイズしていたら更新で消えてしまった」なんて方や、「親テーマをカスタマイズしているのでアップデートはしていない」なんて方がおられましたら、最初にかける手間以上の恩恵があるので、初期投資と思って利用してみることをおすすめします。

MFクラウド確定申告
スポンサーリンク
広告
広告

フォローする

Facebook

『WordPressテーマをカスタマイズするなら子テーマを使った方が良い理由、使い方など』へのコメント

  1. 名前:匿名 投稿日:2015/05/21(木) 16:41:41 ID:f3b5d76ef

    小テーマは有効にしておく必要がありますか?

  2. わいひら 名前:わいひら 投稿日:2015/05/21(木) 17:34:15 ID:5aa68f779

    施したカスタマイズを適用するなら、有効にする必要があります。

  3. 名前:がちょぴん 投稿日:2015/05/21(木) 19:23:36 ID:ca962ca7a

    お久しぶりです。

    子テーマのメリットを若干把握していながらも、
    親テーマのみでカスタマイズ等行っていました。

    今回この記事を拝見してお聞きしたい事があります。

    <?php //子テーマで利用する関数を書く

    このようにコメントアウトされているという事は、
    CSS以外に例えば人気記事を表示させるコードを記述しても大丈夫という事でしょうか?
    親テーマに元々functions.phpがあるので子テーマはCSSファイルだけだと思ってました。
    子テーマにもfunctions.phpを入れたら二重に反映されるのかなと思っていました。
    (また、functions.phpのコードが子テーマに反映される?と思ってました。)

コメントをどうぞ

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)