如何防止NextGen取消注册我的jQuery版本?

时间:2013-08-22 19:46:06

标签: jquery wordpress

我有一个在WordPress 3.6上运行的网站,最近升级到NextGen Gallery 2.

我正在从谷歌CDN加载jQuery并回退到本地版本。像这样......

if (!is_admin()) {
    wp_deregister_script('jquery');
    wp_register_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', false, null, false);
    add_filter('script_loader_src', 'jquery_local_fallback', 10, 2);
}
function jquery_local_fallback($src, $handle) {
    ....
}

当禁用NextGen插件时,jQuery会正确加载。如果我激活插件,它将覆盖我的jquery版本,而是使用/wp-includes/js/jquery/jquery.js中的本地副本。

我尝试通过添加define('NGG_SKIP_LOAD_SCRIPTS', TRUE);常量来阻止NextGen加载脚本,但没有改变。

我希望保持插件升级安全,因此我不想编辑文件。

1 个答案:

答案 0 :(得分:4)

在查看插件代码后,我找到了取消注册我的jQuery版本的函数。我注意到它正在比较版本,看它是否比1.8更新。

我对注册脚本的调用没有版本号,所以它被这个函数覆盖了。

将版本号添加到我的jQuery寄存器后,调用就完成了。

if (!is_admin()) {
    ....
    wp_register_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', false, '1.10.2', false);
    ...
}