【WordPress】global-styles-inline-css を削除する方法

【WordPress】global-styles-inline-css を削除する方法 WordPress

WordPress 5.9以降、ブロックテーマや FSE(フルサイト編集)対応テーマを使用していると、HTMLの <head> 内に global-styles-inline-css という巨大なインラインCSSが自動的に出力されるようになりました。これはテーマのグローバルスタイル(theme.json の設定など)を反映するためのものですが、不要な場合やCSSの最適化を行いたい場合には削除したいケースもあります。

この記事では、この global-styles-inline-css を無効化・削除する方法を解説します。

スポンサーリンク

global-styles-inline-cssとは?

global-styles-inline-css は WordPress が自動的に挿入するインラインCSSで、ブロックエディターやテーマで定義されたスタイル(たとえばフォントや色設定など)を反映させるために使われています。

これは以下のようなHTMLとして出力されます。

出力例
<style id="global-styles-inline-css">
/* 非常に長いCSSが出力される */
</style>

スタイルを自分で管理している場合や、表示速度を意識するサイトでは、これを削除することでパフォーマンス改善につながる場合があります。

削除するためのコード

以下のコードを functions.php に追加することで、global-styles-inline-css を無効化できます。

functions.php:global-styles-inline-cssの削除
// global-styles-inline-css を削除
// wp_enqueue_global_styles() は wp_enqueue_scripts と wp_footer の
// 両方にフックされているため、両方を解除する必要がある
remove_action('wp_enqueue_scripts', 'wp_enqueue_global_styles');
remove_action('wp_footer', 'wp_enqueue_global_styles', 1);
片方のフックだけでは削除できない場合がある
wp_enqueue_global_styles()は、WordPressコア(wp-includes/default-filters.php)でwp_enqueue_scripts(優先度10)とwp_footer(優先度1)の両方にフックされています。この関数の内部ロジックは、テーマの種類(ブロックテーマかどうか)やオンデマンド読み込み(WordPress 6.9以降デフォルト)の設定に応じて、どちらか一方のフック呼び出し時にのみ実際に処理を実行します。wp_enqueue_scripts側だけを解除しても、クラシックテーマかつオンデマンド読み込みが有効な環境では実際の出力がwp_footer側で行われるため、何も削除できない場合があります。必ず両方を解除してください。

注意点

このスタイルを削除すると、ブロックエディターで設定したスタイル(たとえばボタンの色やフォントサイズなど)が正しく反映されなくなる可能性があります。ブロックテーマを使用している場合は、CSSのカスタム設計を前提にした上級者向けの対処になります。

よくある質問(FAQ)

QWordPress 5.9以降のglobal-styles-inline-cssを無効にするには?
Aremove_action(‘wp_enqueue_scripts’, ‘wp_enqueue_global_styles’)とremove_action(‘wp_footer’, ‘wp_enqueue_global_styles’, 1)の両方を実行します。片方だけではテーマの種類によって削除できない場合があります。ブロックエディターやFull Site Editingを使用している場合は表示に影響が出ることがあります。
Qglobal-styles-inline-cssの内容を確認するには?
Aブラウザの開発者ツールのsourceパネルでid=”global-styles-inline-css”のstyleタグを確認します。サイトのカスタムCSSやブロックスタイルが含まれています。
Qglobal-styles-inline-cssを削除するとどのような影響がありますか?
Aテーマのグローバルスタイル(カラーパレット・フォントサイズ等)が適用されなくなります。子テーマのstyle.cssで独自スタイルを全て定義している場合は影響が少ないですが、ブロックのデザインに変化が出る可能性があります。

まとめ

WordPress で自動出力される global-styles-inline-css を削除するには、functions.phpwp_enqueue_global_stylesを登録している2つのフック(wp_enqueue_scriptsとwp_footer)を両方とも解除することが必要です。片方だけの解除ではテーマの種類によって効果がない場合があるので注意しましょう。ただしテーマやプラグインの仕様によって影響があるため、動作確認は十分に行った上で導入してください。