今天,突然想优化一下wordpress里面加载的jquery足有70几K每次都会消耗很多加载时间,于是想从google 的ajax 脚本库加载jquery,这样加载速度有很大提高,毕竟我的网站访问不必google快,而且如果其他网站也这样做的话,客户端浏览器缓存的命中率也比较大。
google一下可以得到更换jquery的代码
wp_deregister_script(‘jquery’);
wp_register_script(‘jquery’, ‘http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js’, false, ‘1.4.0’);
wp_enqueue_script(‘jquery’);
需要注意的是,有些人直接加载google ajax jquery时后台admin 管理界面遇到过一些问题,所以通常会加一段is_admin的判断,只在浏览界面加载google的jquery。
为了使得代码起作用,网上提供了三种解决方案:
第一种方案是直接修改wp源码文件wp-includes\script-loader.php 里面找到加载内置jquery的代码进行直接替换“$scripts->add( ‘jquery’ ….” 此种方案需要修改源码,不是很推荐,以后升级会带来麻烦。
第二种方案是修改当前使用的主题,确保在wp_head调用之前,执行上述替换jquery的代码,可以在header.php 里面“wp_head()” 调用前面加上,或者直接修改主题的function.php 里面直接加上也可以。此种方案虽然也可以解决问题,比直接修改wp源码要好一些,但是又跟主题绑在一起,不利于更换主题。
第三种解决方案,也是大家都想找的就是插件解决方案,这种方案比较友好直接写个插件,压缩成zip然后在plugin管理页面upload就可以了。下面这段代码加载的就是google ajax脚本库的juery 的1.3.2版本js文件。
<?php
/*
Plugin Name:ChangeScriptLoading
Version: 0.1
Description: ChangeScriptLoading
*/
function wp_plugin_change_script_loading(){
if( !is_admin()){
wp_deregister_script(‘jquery’);
wp_register_script(‘jquery’, (“http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js“), false, ”);
wp_enqueue_script(‘jquery’);
}
}
add_action(‘init’, ‘wp_plugin_change_script_loading’);
?>
至此,加载google ajax 脚本库 jquery的探索先到这一步,如果还有其他解决方案,会继续更新。 欢迎关注!
谢谢