IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用wordpress第三方补丁包,通用解决google字体问题

    李惟发表于 2015-02-24 08:37:24
    love 0

    在网上搜索“wordpress google字体”能找到一大片资料。不过都存在一些问题,下面我将分别进行说明。需要解决这方面问题的朋友,无需手动操作,直接安装补丁包即可。

    推荐下我开发的“wordpress 第三方补丁包”,详细说明见:http://levi.yii.so/archives/4603,需要安装的朋友可直接在wordpress后台搜索插件关键字“wp-patch”,即可找到并在线安装。

    回到正题,先来看我第一个找到的解决方案

    function devework_replace_open_sans() {
        wp_deregister_style('open-sans');
        wp_register_style('open-sans', '//fonts.useso.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600');
        wp_enqueue_style('open-sans');
    }
    add_action('wp_enqueue_scripts', 'devework_replace_open_sans');
    add_action('admin_enqueue_scripts', 'devework_replace_open_sans');

    他存在以下几个问题:

    1. 登录界面不好使
    2. 主题单独自带的google字体调用解决不了(更换一个主题可能就没办法了)
    3. URI老套,不能适应wordpress后续更新

    于是有人有提供了下面这个解决方法

    function wpdx_replace_open_sans() 
    {
        wp_deregister_style('open-sans');
        wp_register_style('open-sans', '//fonts.useso.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600');
        if(is_admin()) wp_enqueue_style('open-sans');
    }
    add_action('init', 'wpdx_replace_open_sans');

    那这个问题也同样存在几个问题:

    1. 后台及登录界面是解决了,前台一概不好使
    2. 即便去掉代码中的“is_admin()”,也不能适应所有主题
    3. URI老套,不能适应wordpress后续更新

    考虑到这里,于是我在补丁包(https://wordpress.org/plugins/wp-patch-levi/)中使用了ob函数,将输出的内容压出来,替换掉google资源链接后继续输出,如下:

    function replace_star()
    {
        ob_start();
    }
    
    function replace_fonts()
    {
        $html = ob_get_contents();
        ob_end_clean();
    
        echo str_replace('//fonts.googleapis.com/', '//fonts.useso.com/', $html);
    }

    通过前后台的钩子嵌入并执行压出和替换的操作

    add_action('admin_enqueue_scripts', 'replace_star', 1);
    add_action('admin_head', 'replace_fonts', 9999);
    
    add_action('wp_head', 'replace_star', 1);
    add_action('wp_head', 'replace_fonts', 9999);
    
    add_filter('wp_admin_css', 'check_css', 1, 2);
    add_action('login_head', 'replace_fonts', 9999);

    这样,无论你更换主题、安装第三方插件、wordpress后续更新,都不用担心google字体问题了。这个补丁包只是替换掉了google资源链接的域名前缀,不会对其他任何地方进行修改。简单粗暴,可以放心使用。

    除此之外,我发现gravater头像在中国地区也被墙了,好在https资源还能够访问,也集成在这个补丁包中了。需要的朋友别忘了,在wordpress后台搜索插件关键字“wp-patch”,即可找到并在线安装。

    您可能也喜欢:

    使用CloudFlare提升网站的访问体验和安全性

    linux使用crontab实现PHP执行定时任务

    WEB前端底层知识--浏览器是如何工作的

    初识 jQuery Deferred

    Node.js开发指南——第3章安装Node.js快速入门(一)
    无觅


沪ICP备19023445号-2号
友情链接