使用google fonts和ajax 国内镜像 加快wordpress速度

由于5月27日google所有的服务被国内屏蔽的影响,fonts.googleapis.com和ajax.googleapis.com两个站点的所有资源访问也受影响 ,不过蛋疼的是wordpress 3.8以后内置使用了google的fonts和ajax ,用以加快站点的访问速度。这下可好,站点不但没有加快访问速度,而且受三天两头一屏蔽的影响,反而经常会访问很慢。通过chrome 的F12分析发现拖后腿的url 就是 fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets 这个url 无法访问,导致站点长时间不响应。

googlefonts

解决思路

修改源码,禁用字体

网上首先找了方法,先是用了百度经验里提供的方法,修改主题的functions.php文件。

方法一,在functions.php文件中增加如下代码:

function coolwp_remove_open_sans_from_wp_core() {
wp_deregister_style( 'open-sans' );
wp_register_style( 'open-sans', false );
wp_enqueue_style('open-sans','');}
add_action( 'init', 'coolwp_remove_open_sans_from_wp_core' );

方法二,同样是修改functions.php文件,添加如下代码:

// Remove Open Sans that WP adds from frontend
if (!function_exists('remove_wp_open_sans')) :
function remove_wp_open_sans() {
wp_deregister_style( 'open-sans' );
wp_register_style( 'open-sans', false );
}
// 前台删除Google字体CSS
add_action('wp_enqueue_scripts', 'remove_wp_open_sans');
// 后台删除Google字体CSS
add_action('admin_enqueue_scripts', 'remove_wp_open_sans');
endif;

方法一和二都试了,在我的主题下改了以后就报500 错误 。

字体及样式本地化方法

接下来再说下我自己考虑到的方法,即然google的不能正常访问,就把用到的google的css和fonts及ajax内容下载到站点页下,修改相应的文件,重新加载就OK了。

刚好用头有国外的主机,通过curl获取了需要使用的css内容和内部字体的内容,如下:

[root@localhost ~]# curl 'http://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext&ver=3.9.1'
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: local('Open Sans Light'), local('OpenSans-Light'), url(http://themes.googleusercontent.com/static/fonts/opensans/v8/DXI1ORHCpsQm3Vp6mXoaTdqQynqKV_9Plp7mupa0S4g.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Open Sans'), local('OpenSans'), url(http://themes.googleusercontent.com/static/fonts/opensans/v8/u-WUoqrET9fUeobQW7jkRaCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v8/MTP_ySUJH_bn48VBG8sNStqQynqKV_9Plp7mupa0S4g.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 300;
  src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v8/PRmiXeptR36kaC0GEAetxvqEJM-AK1nFUafhVdytxUY.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v8/xjAJXh38I15wypJXxuGMBl02b4v3fUxqf9CZJ1qUoIA.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 600;
  src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v8/PRmiXeptR36kaC0GEAetxmYImPRL1w80NlYTQ8LOqf4.ttf) format('truetype');
}

打开wp-includes/script-loader.php文件,找到如下行并修改为本地的css文件

$open_sans_font_url = "//fonts.useso.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";
修改为
$open_sans_font_url = "/wp-includes/css/google-fonts.css";

注:需要注意的是,上面curl获取的css文件中引用的字体地址也需要更改为本地地址 ,ajax也同理。另外,如非主题中需要google-fonts,也可以考虑把上面的$open_sans_font_url 行注释掉,禁用google字体,经禁用验证,对我的主题没有什么影响 。

最极方法

上面的方法虽然快了不少,不过由于我的站点在新加坡主机上。所以并不能保证国内的所有地方访问速度都快。网上接着找有没有google fonts和ajax的国内完整镜像 。后来查到360很及时的对google的fonts.googleapis.com和ajax.googleapis.com 站点下的所有内容做了国内镜像。只需要把wordpress文件中的相应的地址修改为 fonts.useso.com 和 ajax.useso.com 即可。

现列出需要修改的文件:

fonts文件

# grep -r 'fonts.googleapis.com' *|awk '{ print $1}'|awk -F: '{print $1}'
wp-content/themes/twentytwelve/functions.php
wp-content/themes/twentyfourteen/functions.php
wp-content/themes/twentythirteen/functions.php
wp-includes/script-loader.php
wp-includes/js/tinymce/plugins/compat3x/css/dialog.css

ajax文件

$ grep -r 'ajax.googleapis.com' *|awk '{ print $1}'|awk -F: '{print $1}'|uniq
wp-content/plugins/use-google-libraries/README.txt
wp-content/plugins/use-google-libraries/use-google-libraries.php
wp-content/plugins/wp-minify/min/builder/index.php
wp-includes/script-loader.php

修改完成后再利用chrome 的 F12 查看,发现速度快了不少,这里就不再截图,具体快了多少,你可以自己用chrome分析下,呵呵!




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: 开源软件 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.