tohokuaikiのチラシの裏

技術的ネタとか。

WordPressでテーマのcommon.cssがロードされてなくて焦った件

WordPressをバージョンアップしたらCSSが崩れた。

ん~~~~、ってHTMLをdiffして見てみたら

Before

<link rel='stylesheet' id='common-css'  href='/wp-content/themes/xxx/css/common.css' type='text/css' media='all' />

After

<link rel='stylesheet' id='common-css'  href='/wp-admin/css/common.min.css' type='text/css' media='all' />

ってなってた。

なんで管理画面のCSSなんかがロードされてるんじゃ。。

原因を探ってみる

とりあえず検索する。 こんなのがあった。 its-office.jp

んー、コアがCSSのロードを上書きしたっポイ。どっかなと探すと、、、

wp-includes/script-loader.php

ここで、

<?php
    // Admin CSS
    $styles->add( 'common',              "/wp-admin/css/common$suffix.css" );

ってされてた。

これによりテーマ内の function.php にて

<?php
wp_enqueue_style( 'common', get_template_directory_uri().'/css/common.css' );

してたのがダメになっちゃったんだね。

原因を探ってみる2

しつこい僕はこの互換性を破壊してそうなコードを誰がコミットしたのか調べてみた。

このコミット。 CSS: Stop using `wp-admin.min.css` and instead queue the individual s… · WordPress/WordPress@987ce83 · GitHub

まぁ、他のedit, aboutなんかをみてると、wp_enqueue_styleするのには自分のオレオレPrefixでも付けておけって感じなのかな。

影響を受けたバージョンも調べてみた

このコードを混入採用したのはどのバージョンからかっていうと・・・

WordPress Versions « WordPress Codex

によると4.4.2からってことみたい。

・・・・随分とWordPressをUpdateするのをスルーしてきたのがばれてしまうではないか・・・。