谷歌字体

发布于
修复谷歌字体加载失败的问题

今天打开博客发现页面半天都加载不上了,这在换了主机之后还是很少见的。

仔细看看是在等待加载 http://fonts.googleapis.com 这一个链接,应该是谷歌提供储存的一个字体库,然后可以通过css调用想要的字体,英文字体通常不过十K百K,加载起来也能接受,一般中文字体少则五六兆,等你字体加载好,才可以看到体面的页面,这时一首普通的MP3歌曲都下载好了。华而不实的东西。就算耐心的等 googleapis 加载完,它其实引用的是 http://themes.googleusercontent.com 的内容,奈何大天朝墙遍谷歌,万年不得超生。(后来想到这几天是什么日子,便表示了解了。)

先想到替换掉谷歌的,想起七牛有弄过一个专门存放一些常用的静态文件的网站 staticfile.org 但上面木有谷歌字体。(后来奇虎360弄出了替换谷歌字体的服务,见下文 ↓↓↓

一些国内的公共库CDN:七牛又拍新浪SAE奇虎

所以当时只有 禁用掉谷歌服务器上的 Open Sans 字体了。搜出来在主题的 function.php 里边添加几行但都没有效果。有两个插件叫做 移除WP核心的谷歌字体链接 和  Disable Google Fonts ,未亲测。

其实有找到

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

这一行,想修改或者注释掉都不行。

if ( 'off' !== _x( 'on', 'Open Sans font: on or off', 'twentytwelve' ) ) {

这里改成 ‘on’ 改成 ‘off’ 也没有效果。

最后看到下面这堆代码,还是直接放在当前主题的 function.php 里边,我的事自带的 Twenty Twelve。亲测有效。作者说是提取自 Disable Google Fonts 插件的。有兴趣的可以直接用插件来解决。

class Disable_Google_Fonts {
    public function __construct() {
            add_filter( 'gettext_with_context', array( $this, 'disable_open_sans'             ), 888, 4 );
            add_action( 'after_setup_theme',    array( $this, 'register_theme_fonts_disabler' ), 1      );
    }
    public function disable_open_sans( $translations, $text, $context, $domain ) {
            if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
                    $translations = 'off';
            }
            return $translations;
    }
    public function disable_lato( $translations, $text, $context, $domain ) {
            if ( 'Lato font: on or off' == $context && 'on' == $text ) {
                    $translations = 'off';
            }
            return $translations;
    }
    public function disable_source_sans_pro( $translations, $text, $context, $domain ) {
            if ( 'Source Sans Pro font: on or off' == $context && 'on' == $text ) {
                    $translations = 'off';
            }
            return $translations;
    }
    public function disable_bitter( $translations, $text, $context, $domain ) {
            if ( 'Bitter font: on or off' == $context && 'on' == $text ) {
                    $translations = 'off';
            }
            return $translations;
    }
    public function register_theme_fonts_disabler() {
            $template = get_template();
            switch ( $template ) {
                    case 'twentyfourteen' :
                            add_filter( 'gettext_with_context', array( $this, 'disable_lato'            ), 888, 4 );
                            break;
                    case 'twentythirteen' :
                            add_filter( 'gettext_with_context', array( $this, 'disable_source_sans_pro' ), 888, 4 );
                            add_filter( 'gettext_with_context', array( $this, 'disable_bitter'          ), 888, 4 );
                            break;
            }
    }
    }
$disable_google_fonts = new Disable_Google_Fonts;

续,两天之后,财大气粗的大数字提供了解决方案,思路还是替换掉谷歌的服务。(原来我文件路径没有找对。。( ╯□╰ )

打开 wp-includes/script-loader.php 文件:
(如果是用自带的主题,比如:twentytwelve,则还要修改 /wp-content/themes/twentytwelve/functions.php
查找
fonts.googleapis.com

替换成(360自己的服务器)

fonts.useso.com

 

原微博

【拯救Google字体,快速优化WordPress打开速度】360网站卫士推出一项字体加速服务, 站长只要修改一行代码,就可以免费使用到由360CDN加速后的字体服务咯。修改方法:把wp-includes/script-loader.php文 件中的fonts.googleapis.com替换为fonts.useso.com。详情参见长微博。

数字网站卫士