カスタマイズするなら、子テーマは重要だよ【WordPress】

この記事は約4分で読めます。

2017-03-08IT雑記

質問者の写真

カスタマイズに失敗して、失敗して、失敗して
ファイルめちゃめちゃになって映らなくなっちゃったよ~ 😥 

 

解答者の写真

あらあら……カスタマイズするなら「子テーマ」を使わないと

子テーマとは?

テーマをカスタマイズするにはファイルの内容を書き換えます。
もちろんそのまま書き換えてもいいのですが、それだとミスがあった場合に取り返しがつかなくなる。
それを防ぐために用いるのが子テーマです。

子テーマは、SimplicityでもStingerでもLightningでも使えます。

子テーマの長所1 ~「やり直し」を容易にする

親テーマに子テーマを入れて、子テーマをカスタマイズするとします。
すると親テーマの記述内容はそのままに、子テーマの設定内容が反映されます。
言い換えると、テーマのカスタマイズで親テーマを修正する必要がなくなります。
仮に何かのミスで動かなくなっても、親テーマは最初の設定のままです。
慌てず子テーマを外せば(あるいは書き換えた記述を削除すれば)、親テーマの設定で動きます。
原因の切り分けも対処も容易になります。

極端な例えをするなら、親テーマが人間、子テーマが化粧

ここに類稀なブスのA子さんがいるとします。
美しく生まれ変わるなら整形手術をするという手があるでしょう。
しかし失敗したら取り返しがつきませんよね?
それよりも化粧でキレイになる方が合理的だと思いませんか?
失敗すれば化粧を落とせばすむのですから。

解答者の写真

ここまで読んで「よくわからない」という方。
理屈はわからなくてもいいから、とにかく「子テーマ」を使って。
大事なことだから二回言ったわよ。

SimplicityとLightningは公式サイトから子テーマがダウンロードできます。
カスタマイズ前に入れて下さい。

子テーマの長所2 ~テーマの更新を容易にする

子テーマを「入れなくてはならない」理由がもう一つあります。
それは「親テーマのアップデートが来ても、気軽に更新できること」。

親テーマだけしか入れていない場合、どうして更新できないのか?
それは「アップデート=ファイルを丸々書き換える」から。
親テーマを直接カスタマイズしていた場合、その記述は全てパア。
一から書き直しになります。

しかし子テーマを入れていれば、書き換えた内容は子テーマ側にあります。
場合によっては微調整する必要がありますが、大抵は親テーマをまるっと入れ替えることができます。

子テーマの記述が優先されない例外 ~functions.php

質問者の写真

ルーの嘘つき!
子テーマのfunctions.php書き換えても動かないじゃん!
言っておくけど、書いてる内容は絶対に合ってるんだからねっ!

他人のせいにするのは初心者の特権。
しかし、ちゃんと理由があります。

解答者の写真

functions.phpだけは「上書」の例外なのよ。
子テーマの記述は「追記」になっちゃうの。

「上書」と「追記」、何が違うのか。
「追記」だと親テーマの記述も生きてしまいます。
なので親テーマの設定と子テーマの設定が競合して動かなくなる場合があります。

ただfunctions.phpいじる場合は、元々「設定を付け加える」場合が多いです
あまり神経質になる必要もないかと。
もし干渉したら、その場合は親テーマを直接いじって、場所をメモしておきましょう。
アップデートきても、再び修正できるように。

子テーマの欠点

子テーマにも欠点はあります。
でも初心者にとっては無視して構いません。
そういうレベルの話なので、以下はあくまで参考としてお読み下さい。

子テーマの欠点、それはムダな読み込みをする羽目になるということ。
結果、サイトの速度が落ちます。

考えてみればわかりますよね?
親テーマも子テーマも読むわけですから。

これに対する対処法は、親テーマのファイル(具体的にはcssファイル)を子テーマのcssファイルに移して一本化しちゃいます。

特にSimplicityの場合はcssが細々してますから有効な手法だと思うのですが……
(Simplicity2で改善されたようです)

ただ、それができるくらいなら最初からこんな記事を書かないし、今読んでいる方も読まないと思います。
しかも影響は微々たるもの。
気にしなくていいです。
初心者にとっては子テーマのデメリットよりメリットの方が遙かに大きいので。

補足

どうしても親テーマ本体をいじらないといけない場合はあります。
その場合はカスタマイズしたファイルをわけて、別の場所に保管しておきましょう。

結論

解答者の写真

今回の記事の内容は理解できなくてもいいから、とにかく子テーマを使って。
大事なことだから三回言ったわよ。