请教一个 WordPress 载入 jQuery 库 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wandero
V2EX    问与答

请教一个 WordPress 载入 jQuery 库 的问题

  •  
  •   wandero 2014-06-17 12:20:23 +08:00 5038 次点击
    这是一个创建于 4201 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为大家都知道的原因,google cdn 上的 jQuery 库在国内都挂掉了
    我的 WP 上有几个插件都调用了 google 上面的 jquery-ui.min.js,还是不同版本的

    GET http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js?ver=1.10.4
    GET http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
    GET http://ajax.googleapis.com/ajax/libs/jquery/1.10.4/jquery.min.js

    看到网上有替换 sae cdn 方法,但是具体在这个场景下的操作不是很明白

    请问要把 google 替换成 sae 或 服务器本地上的 库需要怎么写

    因为插件会不断更新,可以把代码写在主题模板上的 footer 里面吗

    照着帖子写了

    <script type="text/Javascript" src="http://www.v2ex.com//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/Javascript">window.jQuery || document.write('<script type="text/Javascript" src="http://www.v2ex.com//lib.sinaapp.com/js/jquery/1.9.0/jquery.min.js"><\/script>')</script>

    但是好像没效果,而且多个版本 jquery.min 也不知道怎么处理

    谢谢
    10 条回复    2014-06-18 09:05:44 +08:00
    tmqhliu
        1
    tmqhliu  
       2014-06-17 12:32:01 +08:00
    Wordpress 自带 jquery 你把这些注释掉 用 wordpress 自带的 wp_enqueue_script() 函数引入即可
    WildCat
        2
    WildCat  
       2014-06-17 12:41:18 +08:00 via iPhone
    把你theme的<head>域贴出来先
    icanfork
        3
    icanfork  
       2014-06-17 13:32:01 +08:00   1
    打开wordpress代码中的文件wp-includes/script-loader.php文件,搜索:fonts.googleapis.com找到这行代码:
    $open_sans_font_url = "//fonts.googleapis.com/css?family1=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";

    把fonts.googleapis.com替换为fonts.useso.com

    或者可以将以下代码复制到主题functions.php中
    function ipc_google_font($content)
    {
    return str_replace('fonts.googleapis.com', 'fonts.useso.com', $content);
    return str_replace('ajax.googleapis.com', 'ajax.useso.com', $content);
    }
    ob_start("ipc_google_font");
    icanfork
        4
    icanfork  
       2014-06-17 13:33:44 +08:00
    @belin520 上面是替换字体的,替换其他类型,供参考
    emric
        5
    emric  
       2014-06-17 13:50:24 +08:00
    @belin520 使用的方法不够严谨, 如果重置 Jquery 可以用下面的方法~
    https://gist.github.com/unmric/fb03f98ed5e62534b0b6
    wandero
        6
    wandero  
    OP
       2014-06-17 15:28:04 +08:00
    谢谢各位回复

    @tmqhliu 因为有多个插件包含 Jquery ,而且插件更新会覆盖掉修改,所以我在主贴里已经说了想找一种能在模板文件之类位置批量重置的方法,而不去修改插件本身……

    @WildCat <head>里没有 Jquery 信息,调用的是几个插件

    @emric (我是个代码盲= =)据我理解这段代码是用来注销 WP 本身的 Jquery 库,然后引用 jquery 上的库,这个对主贴里提到的插件直接引用的 google 上的库有效吗?另外这段代码应该放在什么位置?
    emric
        7
    emric  
       2014-06-17 15:35:07 +08:00   1
    @wandero 这是最标准的做法, 并对所有标准插件有效.
    把他丢在 functions.php 尾端就好了~ (去掉前面的 <?php )
    yinxingren
        8
    yinxingren  
       2014-06-17 16:26:12 +08:00
    @wandero 同学@emric 的方法是标准的WP函数HOOK,建议这种~简单快捷啦
    ccbikai
        9
    ccbikai  
    PRO
       2014-06-17 17:34:32 +08:00   1
    <?php
    /**
    * Plugin Name: Replace Google Libs
    * Plugin URI: http://www.soulteary.com/2014/06/15/replace-google-libs.html
    * Description: Use Qihoo 360 Open Libs Service to replace Google's.
    * Author: soulteary
    * Author URI: http://www.soulteary.com/
    * Version: 1.0
    * License: GPL
    */


    /**
    * Silence is golden
    */
    if (!defined('ABSPATH')) exit;

    class Replace_Google_Libs
    {

    /**
    * init Hook
    *
    */
    public function __construct()
    {
    add_filter('wp_print_scripts', array($this, 'ohMyScript'), 1000, 1);
    }


    /**
    * Use Qihoo 360 Open Libs Service to replace Google's.
    */
    public function ohMyScript()
    {
    global $wp_scripts;
    if($wp_scripts && $wp_scripts->registered){
    foreach ($wp_scripts->registered as $libs){
    $libs->src = str_replace('//ajax.googleapis.com', '//ajax.useso.com/', $libs->src);
    }
    }
    }
    }

    /**
    * bootstrap
    */
    new Replace_Google_Libs;
    wandero
        10
    wandero  
    OP
       2014-06-18 09:05:44 +08:00
    @emric 非常感谢,这么做了以后 jquery.min.js 正常了,但是又冒出一个 jquery-ui……
    于是我可耻的放弃折腾,用了 @ccbikai 推荐的插件,问题解决……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     890 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 21:21 PVG 05:21 LAX 13:21 JFK 16:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86