テーマの更新ボタンを押したら、サイトのデザインが元に戻ってしまった。カスタマイズしていた部分が全部消えた。この事故は、子テーマを使わずにテーマファイルを直接編集していたサイトで必ず起こります。この記事では、なぜ更新でカスタマイズが消えるのかという仕組みと、自社サイトが子テーマで運用されているかの確認方法、そして今から対処する方法を解説します。
テーマ更新はカスタマイズしたファイルを丸ごと上書きする
先に仕組みを理解すると、対策が明確になります。
更新はファイルを差し替える作業
テーマの更新は、開発元が配布する新しいファイル一式で、サーバー上の既存ファイルを置き換える処理です。あなたが編集した内容は、新しいファイルには含まれていません。したがって、更新した瞬間に編集内容は消滅します。(上書き保存であって、統合ではありません)
編集していなければ更新で崩れることはない
逆に言えば、テーマファイルを一切編集していないサイトは、更新でデザインが崩れることは基本的にありません。管理画面のカスタマイザーやテーマ設定画面から行った設定は、データベースに保存されるため更新の影響を受けません。
崩れる編集と崩れない編集の違い
| カスタマイズ方法 | 保存場所 | テーマ更新で消えるか |
|---|---|---|
| カスタマイザーの設定 | データベース | 消えない |
| テーマ設定画面での色・フォント変更 | データベース | 消えない |
| カスタマイザーの追加CSS欄 | データベース | 消えない |
| 子テーマでの編集 | 子テーマのファイル | 消えない |
| 親テーマのstyle.cssを直接編集 | 親テーマのファイル | 消える |
| 親テーマのPHPファイルを直接編集 | 親テーマのファイル | 消える |
| functions.phpへの追記 | 親テーマのファイル | 消える |
子テーマは親テーマを上書きせずに変更を加える仕組み
子テーマを使えば、更新でカスタマイズが消える問題は根本的に解決します。
子テーマは親テーマを継承して動く
子テーマは、親テーマの機能とデザインをそのまま引き継ぎつつ、変更したい部分だけを別ファイルに書く仕組みです。WordPressは表示時に子テーマを優先して読み込み、子テーマにないファイルは親テーマから読み込みます(出典 WordPress Developer Resources Child Themes)。
親テーマが更新されても子テーマは影響を受けない
更新の対象になるのは親テーマだけです。子テーマのファイルは開発元の配布物に含まれないため、更新しても書き換わりません。セキュリティ修正を受け取りながら、自社のカスタマイズを維持できるのが最大の利点です。
子テーマを使うと親テーマは削除できなくなる
注意点として、子テーマは親テーマがないと動作しません。管理画面のテーマ一覧で「使っていないから」と親テーマを削除すると、サイトが真っ白になります。テーマ整理の際は、必ず親子関係を確認してください。
子テーマで運用しているサイトで親テーマを削除すると、サイト全体が表示されなくなります。テーマ一覧に2つのテーマが並んでいて片方が有効化されている場合、無効な方が親テーマである可能性を疑ってください。
自社サイトが子テーマかどうかは1分で確認できる
まず現状を把握します。
テーマ一覧で名前を確認する
管理画面の「外観」から「テーマ」を開き、有効化されているテーマの名前を見てください。名前に「Child」または「子テーマ」と付いていれば、子テーマで運用されています。付いていなければ、親テーマを直接使っている状態です。
テーマの詳細画面で親テーマ名を確認する
有効化中のテーマをクリックすると詳細が表示されます。子テーマの場合、説明欄や画面上部に親テーマ名が記載されていることがあります。
親テーマ直接運用の場合に確認すべきこと
親テーマを直接使っている場合、次に確認するのは「編集されているかどうか」です。
- 制作会社にテーマファイルを編集したか確認する
- 管理画面の外観からテーマファイルエディターが使われた形跡がないか確認する
- テーマ一覧に更新通知が出ている場合、いきなり押さずに調査する
- カスタマイザーの追加CSS欄に記述があるか確認する(ここは消えない)
- 更新前に必ずバックアップを取得する
市販テーマは編集されている可能性が高い
SWELL・SANGO・Lightningなどの市販テーマや、無料の汎用テーマを制作会社が使った場合、デザインを合わせるためにテーマファイルが編集されているケースがよくあります。制作会社が子テーマを使わずに納品したサイトは、更新するたびにデザインが戻る爆弾を抱えている状態です。
今から子テーマに移行する方法と注意点
すでに親テーマを編集してしまっている場合の対処です。
移行の基本的な流れ
移行作業は以下の順で行います。ファイル操作を伴うため、慣れていない場合は保守担当に依頼してください。
- 現状のサイト全体のバックアップを取得する
- 親テーマの編集箇所を特定し、変更内容を記録する
- 子テーマのフォルダとstyle.css・functions.phpを作成する
- 編集した内容を子テーマ側に移植する
- 子テーマを有効化し、表示を全ページ確認する
- 問題がなければ親テーマを更新する
編集箇所の特定が最も手間がかかる
移行作業で難しいのは、どのファイルのどこが編集されているかを特定する部分です。制作会社が編集内容を記録していれば早いのですが、記録がない場合は元のテーマファイルと現状を比較する作業が必要になります。この調査に数時間かかることもあります。
子テーマ生成プラグインを使う方法もある
Child Theme Configuratorなどのプラグインを使うと、子テーマの作成と編集内容の移行を半自動で行えます。ただし完全ではないため、生成後に必ず全ページの表示確認が必要です。
移行しない判断が合理的な場合もある
編集箇所がごくわずかで、その内容をカスタマイザーの追加CSS欄で再現できるなら、子テーマを作らずCSS欄に移す方が簡単です。追加CSS欄の内容はデータベースに保存されるため、テーマ更新の影響を受けません。見た目の調整だけであれば、この方法で足りるケースが多いです。
更新を放置する選択肢は取れない
「更新すると崩れるから更新しない」という運用は、別のリスクを生みます。
テーマにも脆弱性は見つかる
テーマの更新には、デザインの改善だけでなくセキュリティ修正が含まれます。更新を止めたテーマに脆弱性が見つかれば、そこが侵入口になります。セキュリティベンダーは、テーマやプラグインの脆弱性情報を継続的に公表しています(出典 Wordfence Blog)。
PHPバージョンの変更で古いテーマは動かなくなる
レンタルサーバーは、古いPHPバージョンのサポートを順次終了します。サーバー側でPHPが更新された際、古いままのテーマは動作せず、サイトが真っ白になることがあります。テーマの更新を止めることは、この時限爆弾を抱え込むことでもあります。
更新できない状態そのものが技術的負債
更新すると崩れるサイトは、更新するたびに修正費用が発生します。年に2回のテーマ更新のたびに数万円の修正費がかかるなら、一度子テーマに移行した方が数年で回収できます。更新のたびに毎回同じ場所を直しているなら、それは修正ではなく賽の河原です。
最後に
テーマ更新でデザインが崩れる原因は、親テーマを直接編集していることに尽きます。子テーマで運用していれば、セキュリティ修正を受け取りながらカスタマイズを維持できます。まずは自社サイトが子テーマで運用されているかを確認し、そうでない場合は編集されている箇所があるかを調べるところから始めてください。
Web管理では、月額1万円からWordPressサイトの運用保守を代行しています。子テーマの有無の診断、移行作業、テーマ更新の代行まで対応可能です。「更新すると崩れるので何年も止めている」という状態のご相談も歓迎します。まずはお気軽にお問い合わせください。

