ワードプレスで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

サイト内検索

最近の投稿

アイキャッチ
大山の大献灯・和傘灯りに行った感想

大山の大献灯・和傘灯りに初めて行って参りました。13日の夜に行ってきましたがこんなイベントをやっていることを知らなかったのでご紹介します。和傘のライトアップで日本の夏の雰囲気が良いですね。 大...

23 Aug 2018

アイキャッチ
出雲神話祭り・花火大会

お盆休み中に出雲の花火大会に行って参りました、今年は8月12日(日)でした、開催日は毎年違いますので確認しておきましょう。だいたいこのあたりだった気がします。8,000発の花火で例年13万人が来...

21 Aug 2018

アイキャッチ
chromeのエクステンションを使わないでウェブページ全体をスクリーンショットでとる方法

さて今回はchromeブラウザ限定ですがエクステンションを使わずにページ全体と部分キャプチャをする方法をご紹介します。 割とエクステンションで処理しちゃう場合がありますがデフォルトで使えるとい...

05 Aug 2018

アイキャッチ
はじめてのVim覚え書き

今回はエディターのご紹介になります。かなり特殊なVimエディターをご紹介したいと思います。便利なエディターAtom、SublimeText、VisualStudioCodeとは訳が違います。 ...

28 Jul 2018

アイキャッチ
リニューアルした水木しげるロードは夜がおすすめ

さて、先日14日にリニューアルした境港の通称鬼太郎ロードに行って参りました。鬼太郎に会える町として新たに妖怪を追加して約800mの通りに177体の妖怪ブロンズ像がお出迎え、ゾーン分けをして再配置...

17 Jul 2018

著者

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

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

タグクラウド

wordpress inline javascript
フッターイメージ