WordPressでは、テンプレートにJavaScriptとCSSを直書きしてはいけません。必ずキュー登録から行います。インラインでも同じ。
『header.php, footer.php で共通化すればいい』と思うでしょうが、なぜ、WordPressはキュー登録という一見遠回しな機能を追加したのか考えましょう。
index.phpやsingle.phpなどで直接<script>や<style>を書いているのをよく見かけます。
でもこれはいけません。
スクリプトとスタイルはキュー登録を使うのがルールです。それはインラインでも同じ。
CSSのインライン
サンプルはインラインスタイルだけを出力する方法です。
WPバージョン3.3以上
キューに追加したcssファイルが必要
wp_add_inline_style()は、キューに追加されたcssファイルのハンドルが必要です。サンプルでは、WP5から標準で追加された 'wp-block-library' を使いました。
もちろん、オリジナルで作ったcssファイルの後ろに追加することもできます。
インラインスタイルで既存スタイルを上書きするときは、既存スタイルの後ろに書く必要があります。
上書きされるcssファイルのキューを使ってインラインを追加しましょう。
サンプルではWordPressの標準スタイルを上書きできます。
『11』には意味がある
add_action()のパラメータ、11には意味があります。
編集画面にはブロックのスタイル選択機能がありますが、これにはインライン出力もありwp-block-library-inline-cssに出力されます。
それのあとに追記させるように11を指定します。(デフォルトは10)
ちょっと試してみた
CSSファイルに関係なく独立してインライン出力できないか? 実験しました。
wp_enqueue_style()をコメント化しても、wp_register_style()で登録しているのでイケるんじゃないかと。
結果はダメでした。やっぱりキューの追加が必要です。
<style></style>は追加されるので出力データには不要です。
インライン用のcssファイルを用意して、その内容をそのままブッ込みましょう。
JavaScriptのインライン
WPバージョン4.5.0以上
やり方はインラインスタイルと同じです。使う関数がちがうだけで。
サンプルではjQueryをCDN配信していますが、WordPress搭載のjQueryでも同じです。
また、元になるjsファイルのハンドルはjqueryを使いましょう。jqueryはjQuery本体とmigrateのエイリアスなので、必ずjQueryとmigrateの後ろに追加されます。
こうすれば、インラインでjQueryが使えます。
WordPress.orgリファレンス
特定のページに設定するには
特定のページだけに追加するにはis_***()を使います。
is_single()やis_page()は、パラメータにスラッグ(slug)を指定するとさらにピンポイントのページを指定することもできます。
これらの関数を駆使することで出力する/しないページをコントロールできます。
直書きはやめよう
header.phpやfooter.phpなど、テンプレートに直書きするのはやめましょう。
こういう機能を提供するということは『プログラムで挿入』を促すメッセージです。
いまはWebpackなどの開発ツールがあり、JavaScriptやCSSは細かいファイル管理ができます。いまどきHTMLにJavaScriptを書くなんてありません。
(過去のコーディングを受け継いでいるのは別として。)
Google AnalyticsやGoogle Adsence、アフィリエイトの挿入コードくらいは許されるでしょうが、個人的には外部アプリの挿入コードも管理画面の設定ページを作ってかんたんに使えるようにしたほうが良いと思います。
(wp_add_inline_style(), wp_add_inline_script()を使えばかんたんにできる。)
(プラグインを使っても良い。)