ワードプレスでJSのインラインスクリプト設置方法

ワードプレスでJSのインラインスクリプト設置方法

  • 2017-09-02  最終更新日:2017-09-02

今回はワードプレスにインラインスクリプトを入れる場合の対処方法です。

jQueryなどでオプション指定したりタグなどを入れ込んだりするときに有効です。

結構簡単です。割と最近なんですがそれ用の関数がもう出ています。ワードプレスの4.5以上の機能になりますのでご注意下さい。

wp_add_inline_script( $handle, $data, $position );
$handle:インラインスクリプトを追加するスクリプト名(必須) 。
$data:追加するJavaScriptを含む文字列(必須)。
$position:インラインスクリプトを$handleの前または後に追加する。デフォルトは後(オプション)。

これですね。

jsライブラリなどをwp_enqueue_script関数で読み込んでいるところに一緒に記述すると良いですね。

主にfunction.phpに記載します。

簡単に実装例を載せておきます。


スポンサーリンク


実装例

インラインスクリプトの表示例です。

<?php

function load_inline_script() {
	wp_enqueue_script('app',  get_template_directory_uri().'/js/app.js', array('jquery'), '1.0', true);
	if ( function_exists( 'wp_add_inline_script' ) ) {
		$tag = "";
		if(is_home()){
			$tag = "
			(function($){
				apps.mainslider();
				apps.pagescroller();
			})(jQuery);";
		}

		wp_add_inline_script('app', $tag, 'after');
    }
}

add_action('wp_enqueue_scripts', 'load_inline_script');

上記の例はapp.jsを読み込ませてその下にインラインで表示されるスクリプトです。 条件としてトップページのみの条件にしてあります。

<script type='text/javascript' src='http://example.com/wp-content/themes/themenames/js/app.js'></script>
<script type='text/javascript'>
	(function($){
		apps.mainslider();
		apps.pagescroller();
	})(jQuery);
</script>

それからスクリプトタグも載せたい場合は以下の方法でできます。

apply_filters( 'script_loader_tag', $tag, $handle, $src )
$tag:キュースクリプトのタグ(文字列)。
$handle:スクリプトの登録ハンドル(文字列)
$src:スクリプトのソースURL(文字列)

キューに入れられたスクリプトをHTMLスクリプトタグでフィルタリングします。

<?php

function app_script() {
	wp_enqueue_script('app',  get_template_directory_uri().'/js/app.js', array('jquery'), '1.0', true);
}
add_action('wp_enqueue_scripts', 'app_script');
function load_inline_script( $tag, $handle, $src ) {
	if ( $handle == 'app' ) {
		if(is_home()){
			rreturn $tag .
			'<script id="inline-script">
				(function($){
					apps.mainslider();
					apps.pagescroller();
				})(jQuery);
			</script>'."\n";
		}
	}
	return $tag;
}
add_filter( 'script_loader_tag', 'load_inline_script', 10, 3 );

とくにapp.jsとか読み込ませていない場合は必ず読み込まれているjquery-migrateの後に表示させる方法が簡単かもしれません。

<?php

function load_inline_script( $tag, $handle, $src ) {
	if ( $handle == 'jquery-migrate' ) {
		if(is_home()){
			return $tag .
			'<script id="inline-script">
				(function($){
					apps.mainslider();
					apps.pagescroller();
				})(jQuery);
			</script>'."\n";
		}
	}
	return $tag;
}
add_filter( 'script_loader_tag', 'load_inline_script', 10, 3 );

最近はフェイスブック、ツイッター、グーグルやヤフーのタグマネージャーなどはこのパターンで入れると良いかもしれませんね。

読み込んでいるスクリプトにidを付加することも可能です。以下は例です。

<?php
function add_id_to_script( $tag, $handle, $src ) {
	if ( 'app' === $handle ) {
		$tag = '<script type="text/javascript" src="' . esc_url( $src ) . '" id="appjs" data-app-key="MY_APP_KEY"></script>';
		}
		return $tag;
}
add_filter( 'script_loader_tag', 'add_id_to_script', 10, 3 );

いろいろと使えますね。

参考になれば幸いです。


∞Tadashi Suyama∞

wordpress inline javascript
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

サイト内検索

最近の投稿

アイキャッチ
大江の郷ヴィレッジにいってきました

正月明けの3連休に大江ノ郷ヴィレッジに行ってきましたのでその感想を述べたいと思います。 * [大江ノ郷自然牧場](http://www.oenosato.com/coco_top.html) ...

13 Jan 2018

アイキャッチ
明けましておめでとうございます

明けましておめでとうございます。 本年もよろしくお願いします。 今年の初詣は比較的天候も良く人も多かった気がしますね。 昨年に引き続き勝田神社の夜中に行って参りました。大晦日深夜の初詣は昨...

05 Jan 2018

アイキャッチ
年末年始のお知らせ

今年ももう終わりですね。 当事務所は12/29〜1/4までお休みでございます。 1/5日から営業開始いたします。 よろしくお願いします。 ### 年末年始の営業時間 12/29-1...

29 Dec 2017

アイキャッチ
JPEGデータを拡大してもキレイに保存する方法

オンラインで画像を高画質化かつ拡大してくれるとても便利なサイトです。粗い画像でお困りの方は個々で解決できます。結構すごいです。何がすごいってボケボケの画像がシャープにスッキリになります。小さい画...

23 Dec 2017

アイキャッチ
ワードプレスで各カテゴリーページの先頭に固定表示

ワードプレスの先頭に固定表示機能は便利で特定の記事を固定しておく場合にはとても便利です。この機能って基本的にトップページにしか反映されないのでカテゴリーページにも対応できたらと思い設置してみまし...

16 Dec 2017

著者

ウェブエンジニアのSUYAMAのブログです。

WEBに関することや個人的に関心のあることについて書きます。主に技術系ブログです。

タグクラウド

wordpress inline javascript
フッターイメージ