JS文件在Wordpress中调用了两次

时间:2012-11-24 04:27:01

标签: php javascript wordpress

我正在尝试通过减少WP站点上的JS文件数量来减少请求数量。我成功地将大约7个javascript文件合并为一个(site.js)。现在,我正在使用一个拥有自己的JS文件(pluginA.js)的插件,我希望在该site.js中包含(pluginA.js)。但是,如果我只是将pluginA JS内容复制到site.js然后将位置更改为/files/site.js,则firebug的NET选项卡会显示site.js被请求/调用两次。我认为这是由于wp_enqueue_script

我怎样才能让它第二次调用site.js但只是查看已加载的site.js? 也许有wp_enqueue_script的替代品?

插件的php文件:

add_action( 'wp_enqueue_scripts', 'testplugin_scripts');
    function testplugin_scripts() {
        /*global $testplugin_version; */
            $default_selector = 'li:has(ul) > a';
            $default_selector_leaf = 'li li li:not(:has(ul)) > a';
       wp_enqueue_scripts('test-plugin', site_url('/files/site.js', __FILE__), array('jquery'), $testplugin_version);
            $params = array(
                    'selector' => apply_filters('testplugin_selector', $default_selector),
                    'selector_leaf' => apply_filters('testplugin_selector_leaf', $default_selector_leaf)
            );
            wp_localize_script('test-plugin', 'testplugin_params', $params);
    }

2 个答案:

答案 0 :(得分:0)

如果在单独包含它或将它包含在你的site.js文件中之间的加载时间差是微不足道的话,那么我会单独留下plugin.js。唯一的原因是,如果您继续添加到您的site.js然后下载新版本的插件,您可能会遇到困难。为了补偿,我会使用JS压缩器,它可以显着减小site.js的大小,因此可能比简单地减少HTTP请求的数量提供更大的好处。

答案 1 :(得分:0)

解决方案(有点hacky):不要包含site.js,因此脚本只会被调用一次(来自插件)