楽天セール開催中!ポイント最大11倍! セール会場へ

WordPress│CSSのコードを結合してインライン化して読み込む方法│Code Snippets

CSSを記述する時は追加CSSに書いたり、子テーマのStyle.cssに書いたり、はたまた自分でファイルを用意して読み込んだりと様々な方法があると思います。

個人的にはfunctions.phpに読み込む条件をつけて(例えばトップページのみ読み込む等)パーツごとにCSSの記述を分けたいということから

Code Snippetsを使って記述を分けて読み込ませたりすることがあります。

複数の小さなCSSを条件別に管理する例です。

インライン化するとHTMLは増えるため、まとめれば必ず速くなるわけではありません。

ということで記述方法を少し工夫してCSSをインライン化+結合して読み込ませてみました。

Code Snippetsで記述ごとにスタイルが読み込まれる状態か、工夫後の読み込み例を示す様子。

その備忘録です。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

WordPressでCSSのコードを結合してインライン化して読み込む方法

変更前のfunctions.phpまたは既存スニペットを保存し、どちらか一方へ以下の3つを一組で追加します。

旧motoki_custom_stylesとcss_minifyのコードは、保存したうえで今回のコードへ置き換えます。

CSSは管理者が書いた固定文字列に限り、利用者の入力を連結しないでください。

CSSの記述

いくつかCSSを書いてみます。

Code Snippetsに記述したいくつかのCSSコードの例。
ヘッダー用CSSのコード記述例。

ヘッダー用CSS

add_filter( 'waza_inline_css_parts', function ( $parts ) {
    $parts[] = '#header { background-color: #0ef300; }
@media (max-width: 768px) { #header { background-color: #fff; } }';
    return $parts;
} );

トップページ用CSS

add_filter( 'waza_inline_css_parts', function ( $parts ) {
    if ( is_front_page() ) {
        $parts[] = '#content { background-color: #f00; }
@media (max-width: 768px) { #content { background-color: #fff; } }';
    }
    return $parts;
}, 20 );

※トップページ用には出力の条件を付けています。

CSSのコードを結合してインライン化して読み込む

最後に文字列を改変せず連結し、WordPressのインラインCSS APIへ渡します。

正規表現によるコメント・空白削除は、文字列やURLを壊す可能性があるため行いません。

旧実装でCSSを結合・最小化していたコード設定の画面。
add_action( 'wp_enqueue_scripts', function () {
    $parts = apply_filters( 'waza_inline_css_parts', array() );
    $parts = array_filter( $parts, 'is_string' );
    if ( ! $parts ) return;
    wp_register_style( 'waza-inline-parts', false, array(), null );
    wp_enqueue_style( 'waza-inline-parts' );
    wp_add_inline_style( 'waza-inline-parts', implode( "\n", $parts ) );
}, 20 );

次の画像は旧実装の出力記録です。

現行コードを適用した結果は、後の「画面幅とページを切り替えて確認する」の検証画像を参照してください。

CSSのコードを結合してインライン化して出力した実際の結果。

画面幅とページを切り替えて確認する

スクロールできます
条件ヘッダーの背景本文領域の背景
フロントページ・幅769px以上緑(#0ef300)赤(#f00)
フロントページ・幅768px以下白(#fff)白(#fff)
通常記事・幅769px以上緑(共通の例)フロントページ用の赤は追加されない
追加した3つの処理を停止この例の緑は追加されないこの例の赤・白は追加されない

2026年10月2日にWordPress 7.1.2の隔離環境で、幅1280px・769px・768px・375pxの背景色と、通常記事の出力、処理停止時の復元を確認しました。

以下は掲載コードを適用した検証用の実画面です。

実際のテーマでは、同じ要素を指定するCSSの優先順位によって表示が変わるため、適用後の計算済みスタイルも確認してください。

幅1280pxの隔離検証画面でヘッダーが緑、本文領域が赤になった状態
2026年10月2日撮影・WordPress 7.1.2の隔離環境・幅1280px。
幅375pxの隔離検証画面でヘッダーと本文領域の背景が白になった状態
2026年10月2日撮影・WordPress 7.1.2の隔離環境・幅375px。

まとめ

ちゃんと開発環境を整えたほうがいいという意見もあると思いますが、

ケースによってはさっさとコードを書きつつ、管理もしやすく、それでいてちゃんと高速化も考えた出力方法を考えた時に、

この方法を試す結果になりました。

気になった方はぜひ試してみてください。

GitHubのMOTOKI-LLC/WAZA-codeの旧版サンプルは本文との同期を確認していないため、実装には本記事の掲載コードを使用してください。

背景色は確認用なので実際のデザインへ変更してください。

PCと768px以下、フロントページと通常記事で適用範囲を確認します。

手順内に残したコード設定の画像は旧実装の記録です。

戻す場合は3つの追加処理を停止・削除し、置き換えた既存コードがある場合は導入前に保存した内容へ戻します。

キャッシュを削除して表示を確認してください。

速度改善は未測定です。

ページのソースでwaza-inline-parts-inline-cssのstyle要素を探し、フロントページ用の指定が通常記事に含まれないことを確認します。

wp_add_inline_styleの仕様を参照できます。

  • URLをコピーしました!

表示速度でお困りなら

WordPress高速化の代行

記事のとおりに進めるのが難しいときは、当社が代行します。高速化設定は¥50,000〜、診断のみのご依頼も¥15,000〜(税込)で承ります。改善前後の計測レポートをお渡しします。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトの高速化のサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次