同Open Fonts,Open Libs也躺枪,网上的解决方案是在输出之前替换掉所有的Google域下的文件,感觉不妥,还是使用钩子来实现吧,如果你说,我的主题里有写死的脚本引用,怎么办?
答:手动替换(提供插件的方式就是为了一劳永逸,写死的代码提高效率有限而束缚了维护)。
官方一般会告诉开发者如此使用脚本库定义:
function my_scripts_method() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js');
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
针对上面这样重新注册脚本库的方式,使用下面的插件代码即可完美解决Google脚本库因网络问题拖慢网站速度。
<?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;
插件下载: