WordPress 5.8.2 現在、フロントに下記のようなインラインCSSが読み込まれていることに気が付きました。
<style id='wp-block-library-theme-inline-css'> /// 中略 </style>
調べてみたところ、wp_common_block_scripts_and_styles()
という関数の中に
if ( current_theme_supports( 'wp-block-styles' ) ) { wp_enqueue_style( 'wp-block-library-theme' ); }
と書いてあり、おそらくこの 'wp-block-library-theme'
というキーで読み込まれているスタイルのようだぞ、と。
前後の if 文を見ると、テーマで 'wp-block-styles'
をサポートしている場合と読めるので、ブロックスタイルをサポートしていたら、上記のインラインスタイルを読み込むというような仕組みらしい。5.0 から、設置されているようですね。
調べたら、当該のテーマでは、ばっちり、add_theme_support( 'wp-block-styles' )
してました。
とは言え、邪魔なので、フロントからは削除
テーマの functions.php に下記のように書きます。
function ccc_theme_scripts() { //そのほか /** * wp_common_block_scripts_and_styles() 経由で * ブロックスタイルサポート時に読み込まれているインラインCSSをフロントからは削除 * * @url https://developer.wordpress.org/reference/functions/wp_common_block_scripts_and_styles/ */ wp_dequeue_style( 'wp-block-library-theme' ); //そのほか } add_action( 'wp_enqueue_scripts', 'ccc_theme_scripts' );
'wp-block-library-theme'
というキーで読み込まれているスタイルなので、同じキー名で否定する、、、という感じです、wp_dequeue_style( 'wp-block-library-theme' )
が、その部分です。
テーマでフロントに読み込むスクリプトやスタイルをまとめて読み込んでいる部分に一緒に書いています。たぶん、そうじゃないと動かないはず(試してないですが)。
あくまで、フロントだけ削除してます。管理画面でも読み込まれているんですけど、そっちは、まあ、いいかな、、、と思って、、、。フロントエンドの <head>
の中をスッキリさせたい、スタイルの衝突を防ぎたいのが目的です。(仕方ないのかもしれないけど、まじ、インラインCSSはやめてくれ!て思う・・・)
下記の記事を参考にしました。
2023-08-19 CSSの例はざっくり削りました。