web-dev-qa-db-ja.com

他のすべてのJSの下にWordpressプラグインスクリプトをエンキューする

私は単純なWordpressアプリを開発していますが、私のfunctions.phpにエンキューされているスクリプトの前にすべてのプラグインスクリプトがレンダリングされるので問題があります。

これがfunctions.phpのサンプルセクションです:

function my_scripts() {
    wp_register_script('app-js', get_template_directory_uri() . '/javascripts/app.js', array('jquery'), null, true );
    wp_enqueue_script('app-js');
}
add_action( 'wp_enqueue_scripts', 'my_scripts');

注意すべき重要な点は、(ベストプラクティスに従って、私のJSはページの一番下に表示されるように設定されていることです。

私はまた、テーマ上で実行されているプラ​​グインのカップルを持っています。問題は、出力が次のようになることです。

<!-- Note the plugin appears first -->
<script type='text/javascript' src='http://localhost/wordpress/wp-content/plugins/my-plugin/acl-plugin.js'></script>
<!-- And the main JS appears second -->
<script type='text/javascript' src='http://localhost/wordpress/wp-content/themes/my-theme/javascripts/app.js'></script>
</body>
</html>

WordpressにメインのJS(wp_head()によってレンダリングされると思われる)をプラグインスクリプトの上に表示させるにはどうすればよいですか。このようにして、プラグインはメインテーマにあるJS関数を参照することができます。

1
Sheixt

app.jsのフックのpriorityパラメータを試してみて/追加し、それが機能するかどうか確認してください。

add_action( 'wp_enqueue_scripts', 'my_scripts', 1 );

デフォルトでは10ですので、早めに呼び出して、これがうまくいくかどうか確認してください。

3
Maruti Mohanty