WordPress の head タグの中に style や script を書き足す:wp_head の echo と、決まりの書き方(wp_add_inline_style)

概要説明

WordPress の head タグの中に、試しの CSS や JavaScript を書き足す functions.php のコード。wp_head での echo、WordPress の決まりの書き方(wp_add_inline_style・wp_print_inline_script_tag)、決まったページだけに足す書き方。作業環境で確かめた結果つき。

試しに CSS を当てたいときや、ちょっとした直しのときは、wp_head のフックで echo するのがいちばん手軽です。

functions.php
/**
 * <head> の中に、試しの style と script を書き足す(いちばん手軽な書き方)
 */
add_action( 'wp_head', function () {
	echo '<style id="my-head-style">body{background:#fff;}</style>' . "\n";
} );

いつも使うものは、WordPress の決まりの書き方にしておくと、ほかのプラグインとぶつかりにくく、並び順も WordPress が決めてくれます。

functions.php
/**
 * WordPress の決まりの書き方で、<head> に style と script を足す
 */
// CSS:中身だけのスタイルを登録して、そこに足す
add_action( 'wp_enqueue_scripts', function () {
	wp_register_style( 'my-inline', false );
	wp_enqueue_style( 'my-inline' );
	wp_add_inline_style( 'my-inline', 'body{background:#fff;}' );
} );

// JavaScript:script タグを WordPress に書き出してもらう
add_action( 'wp_head', function () {
	wp_print_inline_script_tag( "console.log('head に追加');", array( 'id' => 'my-inline-script' ) );
} );
書き方 向いているとき
wp_head で echo 試し・一時的な直し。何でも書けるが、並び順は自分で気にする
wp_add_inline_style CSS をいつも足すとき。WordPress の style の並びに入る
wp_print_inline_script_tag JavaScript を足すとき。script タグを WordPress が書き出す(属性もまとめて渡せる)

確かめた結果

このサイトの作業環境(WordPress 7.1)で、3 つの書き方を一度に試しました。

書き方 出た場所と形
wp_head で echo <head> の中に、書いたとおりの <style>
wp_add_inline_style <head> の中に <style id=”(名前)-inline-css”>
wp_print_inline_script_tag <head> の中に、id の付いた <script>

試しに入れたコードは、確かめたあと消しました。

WordPress の head タグの中に style や script を書き足す:wp_head の echo と、決まりの書き方(wp_add_inline_style)

条件の関数と組み合わせると、決まったページだけに足せます。前は URL に「/amp」が入っているかで AMP のページを見分けていましたが、AMP のプラグインを使っているなら、プラグインの amp_is_request() で見分けるほうが確かです。

functions.php
/**
 * 決まったページのときだけ、<head> に足す
 */
add_action( 'wp_head', function () {
	// トップページのときだけ
	if ( is_front_page() ) {
		echo '<style>.my-top-only{display:block;}</style>' . "\n";
	}

	// AMP のプラグインを使っていて、AMP のページのときだけ
	if ( function_exists( 'amp_is_request' ) && amp_is_request() ) {
		echo '<style>.file_name{display:none;}</style>' . "\n";
	}
} );

例:右クリックを止める処理を足す

参考(WordPress の公式の説明)

関連機能

  1. Enlighter のコードにファイル名を表示する:CSS だけでラベルを重ねる方法(長い名前も 1 行)

  2. ico形式のファイルをアップロードできるようにする

  3. WordPress 永続オブジェクトキャッシュAPC設定を設定して高速化 (エックスサーバー)

[amazon_auto_links id="695"]

サイドバー

よく使うカスタマイズ

最近の記事

Profile

PAGE TOP