お問い合わせはコチラから

子テーマのstyle.cssを追加CSSの直前に読み込む

サイト運営

WordPressのカスタマイザーに追加された『追加CSS(Additional CSS)』と子テーマのstyle.cssの使い分けをどのようにするか、というのは個人的に悩んでいました。

ヘッダーの最後にインラインで埋め込まれるので 『追加CSSは最強 』というのが世の中の流れです。一方で、『追加CSS』を使わない場合は、『子テーマのstyle.cssは最強』でなければならないというのが私の持論です。

しかし、国内では圧倒的な人気のTCDテーマではwp_headを使って、追加CSSよりも手間のヘッダーセクションにstyleをぶち込んできます。さらにそれは子テーマのstyle.cssを読み込んだ後なのです。そうなると、子テーマのstyle.cssが上書きされてしまい、子テーマ最強説が崩れます。

かといって、wp_headで子テーマのstyle.cssをヘッダーの一番最後に読み込むと、今度は『追加CSS』よりも後ろに行ってしまい、追加CSS最強説が崩れてしまう。

そもそも追加CSS自体もwp_headで読み込んでいるんじゃないの?だったらその優先順位がわかれば追加CSS直前に子テーマのstyle.cssを読み込むことができてTCDテーマのインラインスタイルを駆逐できますよね?というのがこの記事の内容です。

追加CSSがヘッダーで読まれる仕組み

追加CSSは、wp_headを使って読み込まれる仕組みです。

add_action( ‘wp_head’, ‘wp_custom_css_cb’, 101 );

なので、101よりも優先順位が低いwp_headでフックをかければ、追加CSSよりも手前で読み込まれます。

Additional CSS in the customiser is core WordPress functionality and shouldn’t behave differently between themes. You can see in /wp-includes/js/customize-preview.js that the preview is simply JavaScript that simply sets the content of the <style id="wp-custom-css"></style> element to the content of the Custom CSS text field. The <style> element itself is added by the wp_custom_css_cb() function hooked into wp_head at priority 101. So as long as you have the wp_head() function in your theme, it should behave exactly the same way.

https://wordpress.stackexchange.com/questions/284004/how-does-additional-css-rendering-work

TCDテーマのヘッダーで読み込まれるCSSの仕組みは?

TCDテーマで動的にヘッダーで読み込まれるインラインスタイルは、functions/head.phpで読み込まれる仕組みになっています。

そのファイルの最後を見ると、

add_action(“wp_head”, “tcd_head”);

という記述があります。優先順位は省略されているので10です。

追加CSSは最強のまま、TCDのインラインスタイルを子テーマのstyle.cssで上書きするには?

今までの調査で判明したのは、

  • 『追加CSS』の優先順位が101
  • TCDのインラインスタイルの優先順位が10

です。

TCDのインラインスタイルよりも優先順位を下げ、かつ、『追加CSS』よりも優先順位が高ければ、追加CSSは最強のまま、子テーマのstyle.cssからTCDのインラインスタイルを上書きできることになります。

子テーマのstyle.cssをwp_headで優先順位10<x<101で読み込めばよいことになります。以下の例は優先順位を99にした場合です。

add_action( 'wp_head', 'add_original_style_css', 99 );
function add_original_style_css() {
$s_dire_uri = get_stylesheet_directory_uri();
$date_query = date("ymdGis", filemtime( get_stylesheet_directory() . '/style.css'));

echo '<link rel="stylesheet" id="child-style" href="'. get_stylesheet_uri() .'?'.$date_query. '" type="text/css" media="all" />';
}

まとめ

テーマをオリジナルで作る場合は、そもそも子テーマという考え方はないのでこんな悩みはないのですが、TCDテーマを使っている人があまりにも多く、その時のカスタマイズで子テーマを作ったときに子テーマのstyle.cssを如何に読み込むべきかは結構悩んでいました。

この記事で、追加CSSと子テーマのstyle.css以外のインラインスタイルが埋め込まれた場合にどのように子テーマのstyle.cssを読み込めばよいのかスッキリしました。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました