子テーマを使わずに親テーマをカスタマイズする時の落とし穴|現場で使える実践テクニック

C
クリオ
Web制作ディレクター / フロントエンジニア

こんにちは!

今日は「子テーマを使わずに親テーマをカスタマイズする時の落とし穴」について解説します。

親テーマ直編集がめっちゃ危険な理由

WordPress のテーマ開発の勉強を始めたばかりの時、僕も「子テーマなんて面倒やん」って思って、親テーマのファイルを直接編集していた時期があります。
でも、これほんま危険なんです。
理由は明確で、親テーマがアップデートされた時点で、あなたのカスタマイズが全部上書きされてしまうからです。

WordPress のテーマは定期的に更新されます。
セキュリティパッチ、バグ修正、新機能追加…色々な理由があります。
でも親テーマを直編集していると、そのアップデートを当てたくても当てられなくなる状況に陥ります。

  • カスタマイズを保持したければアップデートを当てられない
  • セキュリティのためにアップデートを当てるとカスタマイズが消える
  • どちらを選んでも問題が残る…これが最悪のパターンです

Web 制作の現場では、クライアントの要望って次々と増えていくんです。
最初は「色をちょっと変える」だけだったのに、半年後には「ここのレイアウトも変えたい」「この機能も追加したい」みたいな感じで。
そうなった時に、もう親テーマは改造だらけになっていて、もう後戻りができない状態になってるんですよ。

実際に起こった現場のトラブル事例

具体的な例を話しますね。
あるクライアント案件で、既存のテーマを使ってるサイトがありました。
新人の時代の僕は「テーマのこのテンプレートを変えたい」って思って、single.phparchive.phpを直接編集していました。

スタイリングだけなら CSS を追加する手もあったのに、HTML 構造そのものを変えちゃってたんです。
もう戻れません。
その後 3 ヶ月くらい経って、親テーマがメジャーアップデートされた時、ほんまに悲劇が起こりました。

  • ページが表示されなくなった
  • エラーログを見たら、予期しない構文エラーが出ていた
  • 僕の編集したコードと新しい親テーマのコードが競合していた
  • すぐには原因が特定できず、クライアントに迷惑がかかった

この時ほんまに反省しました。
「なぜ子テーマを使わなかったのか」ってやつです。
子テーマなら、親テーマがアップデートされても何の影響も受けないのに…。

今思うと、当時の僕は「子テーマって必須じゃないんでしょ」くらいの感覚でいたんです。
WordPress の公式ドキュメントでも「推奨」と書かれているだけで、「必須」ではないから。
でも現場では、絶対に子テーマを使うべきなんです。

どうしても親テーマを編集する時の対策

それでも「今回は親テーマを直編集したい」という状況が、完全にゼロとは言えません。
例えば、自分で一から開発したオリジナルテーマで、そもそも子テーマの概念がない場合とか。
でも、既存のテーマを使う場合は、どうしても編集が必要なら、最小限の工夫をするといいですよ。

1. 編集前に必ずバックアップを取る

これが基本中の基本です。
テーマフォルダ全体を丸ごとコピーして、/themes/parent-theme-backupみたいなフォルダを作っておくんです。
FTP または WordPress のファイルマネージャーで、編集前の状態を記録しておくんですよ。

後で「あ、この編集は失敗だった」ってなった時に、バックアップとの差分を確認できます。
バージョン管理なんて面倒って思う気持ちもわかりますが、最低限これはやっておくといいです。

2. 編集内容をコメントで明確に記録する

親テーマを編集した場合、ファイルのどこを、何の理由で変更したのかを、コメントで詳しく記録しておくといいですよ。

例えば、functions.phpにカスタムコードを追加する場合:

// 【カスタマイズ】2024年1月 クライアント要望:投稿一覧ページのレイアウト変更
// 理由:モバイル表示が崩れていたため、メディアクエリを追加
// 担当:クリオ
// 変更内容:元のコードの後ろに以下の処理を追加

後で別の人が見た時に、なぜこの編集があるのか一目瞭然になります。
現場ではめっちゃ大事です。

3. functions.phpへの追加は慎重に

functions.phpは親テーマで直編集してはいけない筆頭です。
ここに直接コードを追加すると、親テーマがアップデートされた時にあなたのコードが消える可能性があります。
でも、カスタム投稿タイプやフック処理を追加したい場合ってありますよね。

そういう時は、必ず子テーマの functions.php に書くようにするんです。
子テーマの functions.php は親テーマのものを上書きするのではなく、「読み込まれた後に実行される」ので、両方のコードが動きます。
これが子テーマの大きなメリットなんです。

4. CSS のカスタマイズは style.css ではなくカスタム CSS で

テーマの style.css を直編集するのは、特に避けたい編集です。
その代わり、WordPress 管理画面の「カスタマイズ」メニューから「追加 CSS」を使うといいですよ。
ここに CSS を追加すれば、テーマファイルには一切触らずに済みます。

または、子テーマに custom-style.css みたいなファイルを作って、それを functions.php で enqueue するのもいい方法です。
こうすれば、テーマ自体の更新と完全に分離できます。

まとめ

親テーマの直編集は、短期的には楽かもしれません。
でも、中長期的には絶対に問題が出てきます。
Web 制作の仕事をしていると、「あの時子テーマを使っておけば…」って後悔する場面が何度も出てくるんです。

正直なところ、既存テーマを使う場合は、子テーマを作ることを強く推奨します。
子テーマなら、親テーマがアップデートされても何の心配もいりません。