WordPress 的 Google 字体问题解决办法

时间:2022-09-08 10:03:53

 

在国内访问的时候,WordPress 里面引用的 google 字体可能会导致加载速度变得很慢。

要修改的地方有(我使用的版本是 4.0):

wp-includes 里面的 script-loader.php 有一行:

$open_sans_font_url = "//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";

你使用的主题里面的引用,以我用的 twentytwelve 主题为例:

在:wp-content/themes/twentytwelve/functions.php 里面有一行:

$font_url = add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" );

把这些里面的 fonts.googleapis.com 替换成 fonts.useso.com。

 

但是我直接浏览器访问 fonts.useso.com 后发现这个服务是 360 做的。

。。。

如果不想依赖 360 的服务怎么办?

 

Update:

现在只要使用 这个工具 可以直接打包下载字体,生成对应的 css 源码,放到服务器上即可。

 

我的解决方法是手动下载 .css 和所有其中引用的 woff2 字体文件,然后存在自己的服务器上(但此法的问题是如果你升级了,或者安装了新主题,就可能会导致字体找不到)。 

具体步骤:

1.首先从代码得到所有对 google 字体请求的参数,或者使用浏览器的开发者工具监听对 fonts.googleapis.com 的请求。并组合起来自己用浏览器请求一次,得到一个 css。

比如看到有这两个:

?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=latin,latin-ext
?family=Open+Sans:400italic,700italic,600italic,400,700&subset=latin,latin-ext

那么就自己用浏览器访问

https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,300,400,600,700&subset=latin,latin-ext

得到一个 css 文件,包含了两处引用都需要的资源。

 

2.使用文本编辑器在里面搜索出所有字体的静态链接。

我使用的是 Sublime Text,在里面进行正则表达式搜索,我的搜索条件是:

https://fonts.gstatic.*?.woff2

把它们复制出来

https://fonts.gstatic.com/s/opensans/v10/K88pR3goAWT7BTt32Z01m5Bw1xU1rKptJj_0jans920.woff2
https://fonts.gstatic.com/s/opensans/v10/RjgO7rYTmqiVp7vzi-Q5UZBw1xU1rKptJj_0jans920.woff2
https://fonts.gstatic.com/s/opensans/v10/ttwNtsRpgsxVmgGGmiUOEpBw1xU1rKptJj_0jans920.woff2

.......

粘贴到下载工具里面(如迅雷),批量下载。

 

3.字体文件和 css 全部上传到你自己的服务器。

4.把 css 文件里面的链接查找替换成在你服务器上的地址。

5.最后把 wordpress 里面的引用 fonts.googleapis.com 的链接替换成你自己的地址。

完成。