loading
 読み込み中...
ウェブの触手-日々の生活に新たなスパイスを-

【Wordpress】子テーマって本当に便利なの?

投稿日:2018.1.17
アイキャッチ画像
この記事は約5分で読めます。

子テーマは便利だと人は言います。

でも実際には大して必要がないものだと思うようにもなってきました。

本当に子テーマって便利なの?

子テーマのメリット

子テーマっていうのは、
ワードプレスをインストールした際にデフォルトで作られるテーマ(header.phpやsingle.phpなどのテンプレート群)をカスタマイズするための専用テーマのことです。

そのためデフォルトのWordpressテーマは親テーマとも言われます。

子テーマの作り方はここでは割愛します。

子テーマ作りで多いと思われるのは、例えばheader.phpをカスタマイズしようとしたとき、
親テーマのheader.phpをコピーして子テーマ専用フォルダ内にペーストすることでしょう。

その後に子テーマ内のheader.phpを編集していくというものですね。

こうすればたとえ親テーマがアップデートされて機能などが変更されたとしても、
子テーマはその影響を受けないのでカスタマイズ内容が消えることはありません

これが子テーマを作る最大の理由です。

(だからカスタマイズを一切せずにワードプレスを使う方には無縁の話です)

スポンサーリンク

子テーマってちょっと特殊

ところがこの子テーマ、若干ややこしい動作をいたします。

たとえばheader.phpやsingle.phpなどは
ファイルごと子テーマ内にコピーペーストしてカスタマイズします。

この場合Wordpressは子テーマ内のheader.phpやsingle.phpを読みに行きます。

親テーマ内のheader.phpやsingle.phpは無視されます。

一方、子テーマ内のstyle.cssは、
変更点(つまりカスタマイズしたい部分)だけを書くだけで問題なく動作します。

つまり子テーマ内のstyle.cssは親テーマのstyle.cssに追加される感じですね。

もちろん親テーマのstyle.cssを全部まるっとコピーペーストしてカスタマイズしてもOK。

ただしその際はheader.phpやsingle.phpと違って、下記のように決められた形式の記述の後ろに
親テーマのstyle.cssの中身をコピペする必要があります。

子テーマだけのstyle.cssを読み込んだり、子テーマ→親テーマという順でstyle.cssを読み込ませたりと設定次第ではいろいろできないこともないです。

この辺のところはテーマ側である程度お膳立てしてくれてると便利ですね。

 

子テーマのデメリット

子テーマで厄介なのがfunctions.php

これは子テーマにfunctions.phpがあればそっちを先に読み込み、
その後に親テーマのfunctions.phpを読みに行くという、
他のテンプレートファイルとは全く逆の動作をしてきます。

その上両方のfunctions.phpに同じ記述が1個でもあるとページが白紙になることもあるという、
まさに取扱要注意ファイルなんですね。

functions.php以外にも厄介なファイルがあります。

それが親テーマ内にテーマ制作者が独自に作ったファイルやフォルダです。

ワードプレスの仕様なのか、はたまたプラグインの干渉などによるものかはわかりませんが、
それらのファイルをカスタマイズしようとフォルダごと子テーマにコピペしても
全く反映されないこともしばしば。

そうなるとやむを得ず親テーマのファイルを直接カスタマイズするしか方法はないじゃないですかぁ。

でもそれじゃ子テーマの意味がなくなっちゃう。

こんなふうに子テーマって決して扱いやすいテーマとは思えないんですよ。

区切り画像

そして子テーマのメリットとしていろんなところで声高らかにうたわれてる

「親テーマがアップデートしても子テーマにはなんら影響を及ぼさないからアップデートでカスタマイズ内容が消えることがない!」って話。

これ、決して”メリット”というわけではない気がするのですよ。

たとえば子テーマでsingle.phpをカスタマイズしてあるサイトで、
アップデートで親テーマのsingle.phpの内容が一部変更になって新機能が追加されたとします。

しかし子テーマのsingle.phpの内容はアップデートで変わることはないわけですから、
せっかくの新機能も子テーマを作ってる限り日の目を浴びることはないんです。

さらに(こんな例は滅多にないと思いますがわかりやすくするために)

<div id="sample">(HTMLコード)</div>

という指定だったのがアップデートで

<div class="sample">(HTMLコード)</div>

とでもなったとしましょう。

こうなるとid="sample"として設定してあるカスタマイズは
何の意味もなくなっちゃいます。

最悪の場合、表示レイアウトが大幅に崩れる可能性だってあります。

こんな感じで親テーマ側で修正が生じて内部の記述が変わったり新機能の追加があったとき、
(一切変更されない・上書きされない)子テーマ側では修正や新機能の追加に対応できず、
逆にその”恩恵”が足かせとなる場合だってありえるんですね。

こういったことが面倒と感じた私は
”それなら子テーマなんか使うのや~めよ”ってなことにしたわけです。

 

結果、子テーマは必要なし

じゃあ、親テーマがアップデートされた場合はどうするのかって話ですよね。

その場合は、、、ポチッとアップデートボタンを素直に押しちゃいます。
もしくはアップデートファイルで全部上書きしちゃいます。

といってもそれを実行するのは
バックアップを予めしっかりとった上でのことですよ。

ファイルを開いてコピー→テキストファイルにペースト(保存)しておくもよし、
FFFTPなどを使って定期的にサーバーから全ファイルをダウンロードしておくでもよし。

カスタマイズした時は定期的なバックアップ作業が必要になります。

これがあれば万が一なんかあってもすぐに差し替えられますし、
再度親テーマをそれまでのカスタマイズ仕様に戻す時にも役立ってくれます。

ちなみにアップデート後の親テーマの修正点をいちいち探し出すのが大変なのでは?
という考えもあるでしょう。

私の場合は修正したテンプレートファイル名をメモしておき、
アップデート後は該当するファイルをテキスト比較ツールを使って変更点をあぶりだしながら
必要に応じて親テーマを修正していくという方法を取ってます。

テキスト比較ツールについてはコチラ↓に使い方を書いておきました。

※ただいま執筆中。

それに、、、テーマのアップデートって、
そんなにひんぱんに起きるもんでもないですよ。

だから私はアップデートなど気にせず、
親テーマをガンガンカスタマイズしてます。

記事はお役にたてましたか?

記事にご興味をもっていただけましたら
下のソーシャルボタンで共有していただけると嬉しいです^^

 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

アイキャッチ画像

スポンサーリンク

 

コメント(0件)

コメントをどうぞ

入力いただいたメールアドレスは公開されません。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

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

先頭へ