由于jQuery1.12.4有一定的漏洞,在一些高安全级别的网站中需要实用更安全的jQuery版本。目前最安全的版本是jQuery3.4.1。但是Wordpress考虑到其庞大的插件资源的使用性,不得不停留在 jQuery1.12.4 。而我们如果很确定我们使用的插件支持最新版的jQuery,大可切换到 jQuery3.4.1 。

切换方法:

第一步:

禁用内置jQuery。

wp_deregister_script('jquery');

第二步:

引入自己的jQuery库。假设在主题目录下:/assets/js/jquery.js

// 先进行注册
wp_register_script('jquery', get_theme_file_uri('/assets/js/jquery.js'), array(), '3.4.1', false);
// 再引入
wp_enqueue_script('jquery');

完整代码:

前两步的代码均在wp_enqueue_scripts钩子上执行。

function station_ten_scripts()
{
    wp_deregister_script('jquery');
    wp_register_script('jquery', get_theme_file_uri('/assets/js/jquery.js'), array(), '3.4.1', false);
    wp_enqueue_script('jquery');
}
add_action('wp_enqueue_scripts', 'station_ten_scripts');

注意事项:

wp_register_script的第一个参数必须为jquery。否则,很多基于jquery的插件将会无法使用。

更多写法1:

外调jQuery。

function replace_core_jquery_version() {
    wp_deregister_script( 'jquery' );   
    wp_register_script( 'jquery', "https://code.jquery.com/jquery-3.1.1.min.js", array(), '3.1.1' );
    wp_enqueue_script('jquery');
}
add_action( 'wp_enqueue_scripts', 'replace_core_jquery_version' );

更多写法2:

jquery-core和jquery-migrate分别替换。

function replace_core_jquery_version() {
    wp_deregister_script( 'jquery-core' );
    wp_register_script( 'jquery-core', "https://code.jquery.com/jquery-3.1.1.min.js", array(), '3.1.1' );
    wp_enqueue_script('jquery');
    wp_deregister_script( 'jquery-migrate' );
    wp_register_script( 'jquery-migrate', "https://code.jquery.com/jquery-migrate-3.0.0.min.js", array(), '3.0.0' );
    wp_enqueue_script('jquery-migrate');
}