この記事は、最近いたる所で推奨されている『追加CSSによるCSSカスタマイズ』の危険性について説明しています。
この記事を読むことで、『追加CSSによるCSSカスタマイズ』の危険性と、そこで起きる問題点、その対処方法について理解できます。
結論から言います。
追加CSSによるカスタマイズは、テーマディレクトリ名を後から変更すると、キレイさっぱり消えます。
おそらく、親テーマを使用していて途中から子テーマを導入した場合も、同じことが起きると思います。
対処方法としては、追加CSSによるカスタマイズを一度どこかにコピーしておいて、子テーマ導入(テーマディレクトリ名を変更含む)した後で戻せばよいだけです。
詳細を知りたい方は読み進めてください。
子テーマのディレクトリ名を変えたら追加CSSのカスタマイズがきれいに消えた
なぜ子テーマのディレクトリ名を変更したくなったのか?
子テーマを作成して有効化するタイミングはテーマ導入直後のことが多いと思います。テーマ作成元がリリースしている子テーマだと変なディレクトリ名だったと後で気が付くことが多いです。
特にLightningとかスーパー変な子テーマのディレクトリ名(lightning_child_sample)なので、後から見てしまった!と思う人は結構多いと思います。
Lightningなんて初心者が使うことが多いのですから、まともなディレクトリ名の子テーマをリリースしてもらいたいものです。
子テーマのディレクトリ名の変更方法
ディレクトリ名を変えるには、FTPでもいいですし、Wordpressのファイルマネージャーのプラグインを使ってもよいです。
名前を変更してしまうと、現在有効化されているテーマが外れてしまいます。
ダッシュボードで外観⇒テーマと進むと、テーマの有効化が外れているともいますので、子テーマを再度有効化します。
子テーマのディレクトリ名を変更すると起きること
この時点で追加CSSの中身は消えます!
テーマのディレクトリ名を変更すると、Wordpress的に別のテーマに切り替えたと思うのか、追加CSSの中身がきれいさっぱり消えます。
そうなると追加CSSだけでカスタマイズしていた人は悲劇です。
バックアップを取っている人はいいですが、無い人は顔面蒼白でしょう。
All in One Migrationでバックアップを取った方が良いでしょう。
データベースのバックアップだけでよいはずですので、メディアを除けばファイルサイズはそれほど大きくならないと思いますので、無料版でも対応できるのではなかと思います。
メニューの表示場所の指定が外れたりします。
メインメニューの表示位置がグローバルメニューになっていたのが、すべてチェックが外れ、サイトにメニューが出てこなくなっていました。
再度設定すればよいです。
表示の割り当て(固定ページか最新の投稿)が外れていたりします
設定⇒表示設定には、TOPページの表示を固定ページか最新の投稿か設定する場所があります。
それが最新の投稿になっていました。
再度設定すればよいです。
親テーマから子テーマに切り替える時も多分同じことが起きます
子テーマのディレクトリ名を変更した時に起きるトラブルは、ディレクトリ名が変わって別テーマという認識になって起きるのだと思います。
ですので、親テーマから子テーマにテーマを切り替えた時にも同じ悲劇は起きると思います。
最近、子テーマでカスタマイズしなければならない場面は減っていますが、テーマファイルの変更などは子テーマを避けて通れません。
追加CSSはリアルタイムに変更が反映されてとても便利ですが、虎の子のCSSの保存場所としてはとても危険な場所だと考えておくべきです。
対策は?
なにか大きな更新をするときは、事前にバックアップを取れとよく言われます。
言うのは簡単ですが、そもそもテーマを切り替えているのですから、バックアップも単純にとっても上手くいかないです。
データが消えてしまうのは追加CSSだけですから、一度CSSをテキストファイルなどにコピーして保存しておけば、再度コピペすればよいだけです。
そもそも子テーマのstyle.cssでカスタマイズしているのであれば子テーマのディレクトリ名変更による今回のような問題は起きません。
子テーマのstyle.cssはキャッシュの問題で変更が反映されにくいことがありますので、以下の記事を参考にstyle.cssの読み込み方法を変更した方が良いです。
まとめ
子テーマを導入する時は、ディレクトリ名も一度に変更してしまう方が後で困らないです。
追加CSSの機能があるから子テーマは要らないという風潮がありますが、いざ子テーマを導入しなければならなくなった時に何も考えずに子テーマを有効化すると悲劇が起きるのではないかと思います。そんなことを避けるためにも追加CSSはなるべく使わない方が良いと思いました。