【WordPress】TCDテーマで子テーマを適用したらモバイルの表示崩れが発生したので対応

Wordpress

おはようございます。

ちょこちょこ キャスト管理プラグイン導入のお仕事をいただけていて、

最近TCDテーマでの導入をしたのですが、単純に子テーマを入れただけでモバイル表示が崩れるという現象が発生。

んー、今までこんなことなかったのになんでだろ。

こういう時に、ひとつずつ切り分けながら調べる力って大事ですよね。(自画自賛)

ということで、

何が起きて何をしたのかをまとめておきます。

今回のWordpressテーマ

テーマイメージ
テーマイメージ

SERUM(TCD096)」という医療系サイトに適したテーマ。比較的新しいテーマかと思います。

もちろん、デモ環境ではモバイルもしっかり表示されます。

現象

問題ない表示
問題ない表示

これがあるべき姿。

冒頭で話した通りで、難しい話しではないのですが、

  1. 管理画面でTCDテーマをアップロード
  2. 特に何も追加していない空の子テーマを作成しアップロード(style.css にも何も定義していない)
  3. 子テーマを有効化

だけで、PCの表示は問題ないのですが、モバイルでなんだか表示が崩れる。

こんな感じになる
こんな感じになる

とりあえず、子テーマの function.php に親テーマの style.css 読込み、子テーマの style.css 読み込みを追加してみる。

 

 

こんなんなった
こんなんなった

今度は全体的におかしい。

うーん。

原因

どうも、CSSの適用順序がおかしい。

親の style.css が適用されていない。というか親の style.css を期待している箇所で、子の style.css が設定されてしまってる。。

スタイルの読み込み
スタイルの読み込み

何故じゃ。と思って親の funciton.php を調べてみたら、style.css の指定が、

ってなってる!

えー!

get_stylesheet_uri 使っちゃうと、子テーマ有効化したら子テーマの方見にいっちゃうじゃん!

何故じゃ。

対応

先程の親の style.css の指定だけ対応しようとしても他のCSSとの依存関係もあり無理だったので

一旦親のCSSをすべて無効化し、「wp_enqueue_scripts」へフックして読み込みたい順序で読むようにしました。

まとめ

バグなのか仕様なのか、そもそもそういうものなのか、よくわかりませんが

もしかしたら比較的新しいTCDテーマだとこうなっているのかも。

もしそうなら、そのうちちゃんとしたやり方も出てくると思いますが、ひとまず暫定的に対応するには

親の読み込みを一旦取消して、子テーマの function.php で必要な CSS / Javascript を読み込むようにすればなんとかなります。

納期もあってちょっと焦りましたが、なんとかなってよかった。

何かのお役に立てれば。

ではでは。

 

スポンサーリンク


関連するコンテンツ