WordPressでショートコード内のJSをフッターで読み込む方法

作成日:

タイトルの
書き方が
難しい

要は、これまではjQueryの読み込みをヘッダーにしといたので、ショートコード内にスクリプトを直書きして出力していても問題無かったのだけれど、WordPressの高速化のためにjQueryなどのライブラリをフッターに読み込ませると、

PHP
function js_shortcode_insert() {
	echo '<script>jQuery(document).ready(function ($) {...} );</script>';
}
add_shortcode( 'js_insert', 'js_shortcode_insert' );

のようなJSを直書きしているショートコードの場合、そのコードが読み込まれた時点ではまだjQueryライブラリは読み込まれていないので、エラーが発生します。

そこで、このような場合はwp_add_inline_scriptを使って、

PHP
function js_shortcode_insert() {
	$script = 'jQuery(document).ready(function ($) {...} );'; // ここにJSコード(<script>タグは不要)
	wp_add_inline_script( 'jquery-core', $script, 'after' );
}
add_shortcode( 'js_insert', 'js_shortcode_insert' );

のように記述します。

favicon
wp_add_inline_script https://elearn.jp/wpman/function/wp_add_inline_script.html

bool wp_add_inline_script( string $handle, string $data [ , string $position = 'after' ] ) インラインスクリプトを追加する。

wp_add_inline_scriptの第一引数で、JSライブラリのハンドル名を指定します。ここでは、jQueryに依存するJSなのでjquery-coreを指定して、第二引数で読み込むJS、第三引数で読み込んでいるハンドル名の後ろに追加するため「after(省略可)」を指定します。

物草 灸太郎
物草 灸太郎

WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。

Loading...

コメントをどうぞ

  • メールアドレスが公開されることはありません。
  • コメント欄にURLは入力できません。
  • このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。