WordPress 5.2.1停用我的jQuery

时间:2019-05-22 作者:Desi

我一直在使用下面的代码来使用Google的jQuery,但最新的WordPress版本停用了它。如何使用Google的jQuery?

//* Use Google\'s jQuery
add_action(\'init\', \'use_jquery_from_google\');

function use_jquery_from_google () {
    if (is_admin()) {
        return;
    }

    global $wp_scripts;
    if (isset($wp_scripts->registered[\'jquery\']->ver)) {
        $ver = $wp_scripts->registered[\'jquery\']->ver;
    } else {
        $ver = \'3.4.0\';
    }

    wp_deregister_script(\'jquery\');
    wp_register_script(\'jquery\', "//ajax.googleapis.com/ajax/libs/jquery/$ver/jquery.min.js", false, $ver);
}

1 个回复
最合适的回答,由SO网友:Rup 整理而成

5.2.1包括来自jQuery 3.4.0的后端口修复程序(commit). 因为他们现在使用的是jQuery的修改版本,所以在版本号后面加了“-wp”:

$scripts->add( \'jquery\', false, array( \'jquery-core\', \'jquery-migrate\' ), \'1.12.4-wp\' );
您的代码尝试从现有注册复制jQuery版本号

global $wp_scripts;
if (isset($wp_scripts->registered[\'jquery\']->ver)) {
    $ver = $wp_scripts->registered[\'jquery\']->ver;
问题是谷歌的CDN不会有一个名为1.12.4-wp的jQuery版本。以下URL

https://ajax.googleapis.com/ajax/libs/jquery/1.12.4-wp/jquery.min.js
不存在。不带“-wp”的相同URL也可以工作。因此,您应该在浏览器控制台中看到的错误是404从CDN加载jQuery。

jQuery补丁将修复Trac 47020 这是jQuery中的一个安全问题。允许跨站点脚本攻击的扩展("Minor vulnerability fix: Object.prototype pollution"). 因此,您可能确实想要它,或者再次使用WordPress的补丁版本1.2.14,或者更新到3.4.0(如果与站点的其余部分兼容的话)。

相关推荐

Register jQuery - OOP WP

我发现this post 这似乎可以使Ajax脚本在OOP模型中工作。我发现通过类函数而不是其他文件添加脚本很有趣,这对我来说非常有用。但是,我无法将jQuery排入Wordpress的队列。我有一个错误:jQuery is not defined.这是我的代码:class fiche_content{ private $file_base; private $jenkins_url; function __construct($jenkins_