web-dev-qa-db-ja.com

個々のページ投稿に<script>タグをエンキュー(または読み込みを遅らせる)するにはどうすればよいですか。

私の顧客は、javascriptを含む<script>要素を含む多くのページを持っています。

<script src="myscriptforthispageonly.js"></script>

wp_enqueue_script()を使用してすべてのスクリプトをフッターにロードしようとしていますが、ページ内からスクリプトをエンキューする方法がわかりません。

繰り返しますが、これはWordpressページ内にあります。外部スクリプトをページまたは投稿からエンキューすることは可能ですか?

それが不可能な場合は、onloadイベントが発生するまでスクリプトのロードを遅らせることは可能ですか?

2
brentonstrine

一般的な回答:WordPress 3.4(IIRC)以降では、テンプレート内でwp_enqueue_script()を直接インラインで呼び出すことができます。

だから、あなたが持っているなら:

<script src="myscriptforthispageonly.js"></script>

あなたはそれを置き換えることができます:

<?php wp_enqueue_script( 'this-page-script', get_template_directory_uri() . '/myscriptforthispageonly.js', array( 'jquery' ), null, true ); ?>

編集する

このコメントから:

これはページ内からです。 Wordpressのページのように。テンプレートはありません。あなたがWordpressのブログ投稿更新を書いていると想像してください、あなたはHTML vieに切り替えます

<script>呼び出し自体を直接投稿に含めるのではなく、ユーザーが投稿コンテンツに含めるためのショートコードを定義するのが最善の策です。コンテンツ。それから、あなたのショートコードコールバックで、あなたはwp_enqueue_script()を呼び出すことができます。

3
Chip Bennett