用Google Ajax API的jquery替换WordPress的内置jquery

今天,突然想优化一下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的探索先到这一步,如果还有其他解决方案,会继续更新。 欢迎关注!

1 comment to 用Google Ajax API的jquery替换WordPress的内置jquery

Leave a Reply to 晨光

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Protected by WP Anti Spam