web-dev-qa-db-ja.com

JQueryの後にプラグインがスクリプトを確実にロードするようにするにはどうすればよいですか

私のクライアントは、Thesisを使って、最新バージョンのWordPressを実行しているサイトを持っています。

現在、最後にロードされるスクリプトとして、jQueryがフッターにロードされています。私がjQueryをロードしている原因が何であるかはっきりしていません。

ロードするスクリプトを含むプラグインを追加しています。スクリプトはフッターにロードされています。しかし、それはjQueryの前にロードされているので、失敗します。

エンキュースクリプトの行は次のとおりです。

add_action('wp_enqueue_scripts', array($this, 'stb_enqueue_scripts'));

これを次のように編集しました。

$deps = array("jquery");
add_action('wp_enqueue_scripts', array($this, 'stb_enqueue_scripts', $deps));

しかし、それで問題は解決しませんでした - 実際、スクリプトはもうまったくロードされていません。

このスクリプトがjQueryの後に読み込まれるようにするにはどうすればよいですか。

ありがとうございました!!

1
dylanized

wp_enqueue_script またはwp_print_script関数を使用すると、jQueryのロード後にJSファイルをロードできます。使用法のリファレンス -

<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>

$dep引数(依存関係)は、配列またはnullまたは空にする必要があります。コードに対して行った方法では使用しないでください。 wp_enqueue_script またはwp_print_script関数でオンになります。

最初に使用されたadd_action参照は有効ですが、2番目の参照は無効です。

stb_enqueue_scripts関数では、 -

function stb_enqueue_scripts()
{
    // third argument is the dependencies, should be array or boolean false
    // fifth argument = boolean true if loading the script at footer
    wp_enqueue_script( 'script-name', 'script_url', array('jquery'), '', true );
}
7
Shazzad