删除 wordpress 中的 googleapis 字体

作者: | 更新日期:

最近wordpress站点打开缓慢,抓包后发现是google fonts的缘故,因此需要删掉那个东西。

本文首发于公众号:天空的代码世界,微信号:tiankonguse

最近 google 完全被墙了, 然后我的 wordpress 站点打开缓慢, 开了代理就不存在这种现象。

于是猜测某个外部引用的资源加载缓慢, 抓包后发现是 googleapi fonts 的缘故。

在天朝还是把这个字体保存在本地或者不用这个字体吧。

引用位置

要删除或修改这个 googleapi fonts, 就需要找到引用它的位置了。

去主题的 header.php 里找了找,发现没有。

后来想想肯定没有了, 这个主题是 自己编写 的,自己肯定不会使用别人的资源了,多么不可靠呀。

那只有在 wordpress 的自带文件里了。

其实也容易想到,我是在登陆页面遇到这个加载缓慢问题的,那个页面我的主题里没有做,所以只有是系统自己的了。

那位置到底在哪呢?

这个简单,查找一下不就行了。

grep -r "fonts.googleapis" *

显示如下

tiankonguse@tiankonguse:~/public_html/blog$ grep -r "fonts.googleapis" *
wp-content/themes/twentythirteen/functions.php:		$fonts_url = add_query_arg( $query_args, "//fonts.googleapis.com/css" );
wp-content/themes/twentytwelve/functions.php:		$font_url = add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" );
wp-content/themes/twentyfourteen/functions.php:		$font_url = add_query_arg( 'family', urlencode( 'Lato:300,400,700,900,300italic,400italic,700italic' ), "//fonts.googleapis.com/css" );
wp-includes/script-loader.php:		$open_sans_font_url = "//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";
wp-includes/js/tinymce/plugins/compat3x/css/dialog.css:@import url(https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=latin-ext,latin);

不用管与themes有关的,那剩下的就是

wp-includes/script-loader.php:		$open_sans_font_url = "//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";
wp-includes/js/tinymce/plugins/compat3x/css/dialog.css:@import url(https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=latin-ext,latin);

可以看到,一个是php文件,一个是css文件。

解决方案

我们可以直接把那个php文件里的链接删掉,但是这样做并不好,因为如果wordpress升级了可能又遇到这个问题了。

那我们能不能在主题里修复这个问题呢?

经过 google 发现还真的可以。

在我们的主题里的 functions.php 里添加这个一个代码即可

class Disable_Google_Fonts {
        public function __construct() {
                add_filter( 'gettext_with_context', array( $this, 'disable_open_sans'             ), 888, 4 );
        }
        public function disable_open_sans( $translations, $text, $context, $domain ) {
                if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
                        $translations = 'off';
                }
                return $translations;
        }
}
$disable_google_fonts = new Disable_Google_Fonts;

然后发现速度快了一些。

参考资料

(完)

本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。

关注公众号,接收最新消息

tiankonguse +
穿越