私は単純な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関数を参照することができます。
app.js
のフックのpriorityパラメータを試してみて/追加し、それが機能するかどうか確認してください。
add_action( 'wp_enqueue_scripts', 'my_scripts', 1 );
デフォルトでは10ですので、早めに呼び出して、これがうまくいくかどうか確認してください。