WP_ENQUEUE_SCRIPTS查询不正确

时间:2015-10-13 作者:Leahcim

我正在使用Emberjs构建WordPress站点的前端。它有两个javascript文件1。小贩js和2。myapp。js。在Ember的dev服务器上,该应用程序工作正常,但当我将生产版本添加到WordPress应用程序时,我得到的错误表明vendor.js 在之前未加载文件myapp.js. 注:供应商。js内部有jQuery(以及其他供应商代码)。

这就是我将js文件添加到WordPress应用程序的步骤。在函数中。我的主题是php

function add_my_js(){

     wp_register_script(\'vendors\', get_template_directory_uri() . \'/vendor.js\', array(), \'20151006\', true);
     wp_register_script(\'myapp\', get_template_directory_uri() . \'/myapp.js\', array(), \'20151006\', true);

     wp_enqueue_script(\'vendors\');
     wp_enqueue_script(\'myapp\');
}
add_action(\'wp_enqueue_scripts\', \'add_my_js\');
有了这些代码,我可以在我的WordPress应用程序(在development server中)的首页上看到(并单击)指向这两个js文件的链接,所以我知道这两个文件都包含在内。然而,我从Ember应用程序收到的错误消息表明,供应商。可能没有在myapp的正确时间加载js文件。js文件。

问题:是否有其他方法确保在运行第二个文件之前加载第一个文件?

2 个回复
SO网友:Jeff Mattson

您可以添加需要先执行的脚本作为第二个脚本的要求。类似这样:

wp_register_script(\'myapp\', get_template_directory_uri() . \'/myapp.js\', array(\'vendors\'), \'20151006\', true);

SO网友:esteban

杰夫的回答应该有用。在Chrome中打开它,打开开发工具,单击网络面板,然后刷新浏览器。这将显示加载所有资产的顺序。确保名称(即。vendors) 是正确的。

为了让它正常工作,您可以在wp_register_script 作用如果主题中有wp\\u footer调用,则会将文件调用下移到页脚,以便稍后调用。可能不适合您的情况,但至少可以帮助您运行它。