WordPressで子テーマを使うべき理由と、使わないと困る場面

テーマの更新通知が出ていたので、深く考えずに更新ボタンを押しました。翌朝、社内から「トップページの見出しの色が前と違う」と連絡が来ます。管理画面を開いても設定は変えていません。以前、表示を微調整するためにテーマのファイルを直接書き換えたことを思い出し、そこで血の気が引く——WordPressを自社で触っている担当者なら、一度は通る場面です。
テーマを直接編集すると、更新で上書きされる
WordPressのテーマは、配布元が改善や不具合修正のために更新を出します。更新を適用すると、テーマフォルダの中身は配布元のファイルに置き換わります。つまり、テーマのファイルを直接編集して入れた修正は、更新のたびに消えます。
やっかいなのは、消えたことにすぐ気づけない点です。更新直後は問題なく見えても、修正していたのが特定のページや特定の画面幅だけだった場合、数週間経ってから「そういえば表示が崩れている」と発覚します。そのときには、何をどう直したのか記憶が残っていないことがほとんどです。
そして「更新しなければいい」という選択は現実的ではありません。テーマやプラグインの更新には脆弱性の修正が含まれることがあり、更新を止め続けるのはサイトを危険な状態で放置することになります。更新できる状態を保ちながら、自分の修正を残す。この両立のための仕組みが子テーマです。
子テーマが実際にやっていること
子テーマは、元のテーマ(親テーマ)を土台として読み込み、自分が用意したファイルだけを優先させる仕組みです。
- 見た目の調整を書いたスタイルシートは、親テーマのスタイルの後に読み込まれ、上書きとして働く
- 特定のテンプレートファイルを子テーマ側に置くと、同名の親テーマのファイルの代わりに使われる
- 子テーマに置かなかったファイルは、親テーマのものがそのまま使われる
重要なのは、親テーマのフォルダには一切手を触れない点です。親テーマが更新されても、子テーマのフォルダは上書きされません。修正はそのまま残り、更新の恩恵だけを受け取れます。
使わないまま運用すると困る具体的な場面
抽象的な話ではなく、実際に相談が持ち込まれやすいのは次のような状況です。
- テーマ更新で独自の表示調整がすべて消えた。 どこを変えたか記録がなく、当時と同じ見た目に戻すために全ページを目視で確認する羽目になる。
- 更新を怖がって止め続けた結果、バージョンが大きく離れた。 一気に更新するとレイアウトの土台ごと変わり、影響範囲が読めなくなる。
- 担当者が交代して、なぜその記述があるのか誰も説明できない。 テーマ内に直接書かれた修正は、通常の設定画面から見えないため、引き継ぎ資料にも残りません。
- 制作会社に修正を依頼したら、まず現状把握に時間がかかった。 親テーマが編集済みかどうかの調査から始まるため、本来不要な工数が発生します。
いずれも、作業量そのものより「原因の特定に時間を取られる」点が負担になります。
最小構成で子テーマを用意する
子テーマは大掛かりなものではありません。テーマを格納するフォルダの中に新しいフォルダを1つ作り、次の2つのファイルを置くのが基本形です。
- style.css — 冒頭のコメント部分に、子テーマの名前と、親テーマのフォルダ名を指定する記述を書きます。ここで親子関係が決まるため、親テーマのフォルダ名は表示名ではなく実際のフォルダ名を書き写します。
- functions.php — 親テーマのスタイルシートを読み込む処理を書きます。テーマによって読み込みの作法が異なるため、親テーマの配布元が子テーマ向けの案内を出している場合は、そちらに合わせるほうが安全です。
作成後は管理画面のテーマ一覧に子テーマが現れるので、有効化します。切り替えた直後は、カスタマイザーで設定していた内容やウィジェットの配置が引き継がれないことがあります。切り替え前に現在の設定をスクリーンショットで残しておくと、復旧が早く済みます。
作業する順番としては、まずバックアップを取り、次に子テーマを作って有効化し、表示を確認し、それから既存の独自修正を子テーマ側へ移す、という流れが安全です。いきなり本番で切り替えず、テスト環境があるならそちらで一度通してください。
子テーマでも解決しない範囲を知っておく
子テーマは万能ではありません。ここを誤解すると、別の形で同じ問題を繰り返します。
- プラグインの改変は守られません。 プラグインのファイルを直接書き換えた修正は、プラグイン更新で消えます。こちらは別の方法で切り分ける必要があります。
- 親テーマの大きな仕様変更には追随が必要です。 親テーマ側でテンプレートの構造が変わると、子テーマに置いた古いテンプレートが噛み合わなくなることがあります。更新後は、子テーマにコピーしているファイルを確認する習慣をつけてください。
- 子テーマにファイルをコピーしすぎると管理が重くなります。 テンプレートの複製は、本当に必要なものだけに絞るほうが後々楽です。色や余白の調整程度なら、スタイルシートへの追記で足りる場合が多くあります。
また、テーマによっては親テーマ自体が子テーマ利用を前提としない設計になっていることもあります。導入前に、親テーマの案内を一度確認しておくと判断がぶれません。
まとめ
子テーマは、サイトを更新し続けられる状態に保ちながら、自分たちの調整を残すための仕組みです。凝った機能を足すためではなく、将来の「原因が分からない不具合」を減らすために入れるものだと考えると、優先度がはっきりします。
今日できることとして、管理画面のテーマ一覧を開き、現在有効になっているテーマが子テーマかどうかを確認してみてください。親テーマがそのまま有効になっていて、かつ過去に表示の微調整をした記憶があるなら、次のテーマ更新の前に手を打つべき状態です。
IRS WEBスタジオでは、WordPressサイトの構成の見直しや、更新に耐える形への整理を承っています。現状がどうなっているか分からない、という段階からご相談いただけます。