一回折れた人

日々の出来事をつらつらと

wordpressの内で同じCSSが多重読み込みされる

CSSは後から追加された物が上書きされるので動作には関係ないのですが、2重で子テーマのCSSが読み込まれているのが気になる。 多分google先生もおこだと思われます。

/* 親テーマのbase.css */
<link rel='stylesheet' id='base-css-css'  href='http://192.168.1.60/wp-content/themes/xeory_extension/base.css?ver=4.6.1' type='text/css' media='all' />
/* 子テーマのcss */
<link rel='stylesheet' id='main-css-css'  href='http://192.168.1.60/wp-content/themes/xeory_extension-child/style.css?ver=4.6.1' type='text/css' media='all' />
/* 親テーマのcustom.css */
<link rel='stylesheet' id='parent-style-css'  href='http://192.168.1.60/wp-content/themes/xeory_extension/style.css?ver=4.6.1' type='text/css' media='all' />
/* 子テーマのcss*/
<link rel='stylesheet' id='child-style-css'  href='http://192.168.1.60/wp-content/themes/xeory_extension-child/style.css?ver=4.6.1' type='text/css' media='all' />

ちょっと分かり辛いのですが、子テーマの同じCSSが2回読み込まれています。

消し方?

まず何で呼び出されてしまうかですが、「wp_head()」という関数を呼ぶと自動でheadを出力してくれます。 この「wp_head()」の呼び出しされる中身の確認ですが、「wp-includes/default-filters.php」の中に書いてあります。

消すとしたら[main-css-css]の方になるのですが、消し方が「remove_action()」を「function.php」の中か「wp_head()」を呼び出す前に書けば良いようです。 一番やりたい事としては、「main-css-css」が親テーマの後に呼び出されて必要なところだけ上書きすることですが、おそらく「remove_action」だけでは無理な気が・・・。 「wp-includes/default-filters.php」の中の下記の部分、多分link系の内容を取得している部分だと思うので、ここを調べれば分かりそう?

add_action( 'wp_head',             'feed_links',                      2     );
add_action( 'wp_head',             'feed_links_extra',                3     );

参考:【WordPress】「wp_head();」で自動的に出力される余分なタグを削除する方法。(WordPress 4.4 対応)