国内WordPress网站替换Gravatar头像服务

国内无法加载Gravatar头像,导致很多接入了Gravatar的网站程序加载速度异常的慢,特别是WordPress,并且因为Gravatar无法打开,也没法创建或修改头像。于是国内就有了很多镜像源,使用镜像源就可以完美的替代Gravatar

起因

为什么会想着写这篇文章呢,说起来都心累,本站之前使用的镜像源是cravatar,本站的加载完成耗时一般为300ms,都是秒开的,但是最近发现网站偶尔加载时间会变得很长,有时头像也显示不出来,F12一查看结果是cravatar网站出问题打不开造成的。本站的镜像源是主题自带的,所以之前一直没管这个事,现在出问题了也不得不自己替换镜像源,于是写篇文章顺便告诉大家如何更换Gravatar镜像源

国内常用镜像源

  • WeAvatar:weavatar.com 有缓存 加载速度快
  • Cravatar:cravatar.cn 有缓存 加载速度快
  • V2EX:cdn.v2ex.com 无缓存 加载速度一般
  • 极客族:sdn.geekzu.org 无缓存 加载速度一般
  • loli:gravatar.loli.net 有缓存 加载速度快

WordPress配置方法

将下面代码直接扔在functions.php文件中,有的主题自带头像加速镜像,需要把功能关闭后下面代码才有作用,将代码中镜像域名替换为上方你想要替换的镜像源就行了

//WordPress替换gravatar
if ( ! function_exists( 'get_diyavatar_url' ) ) {
    function get_diyavatar_url( $url ) {
        $sources = array(
            'www.gravatar.com',
            '0.gravatar.com',
            '1.gravatar.com',
            '2.gravatar.com',
            'secure.gravatar.com',
            'cn.gravatar.com',
            'gravatar.com',
        );
        return str_replace( $sources, '这里填镜像域名,不要加http', $url );
    }
    add_filter( 'um_user_avatar_url_filter', 'get_diyavatar_url', 1 );
    add_filter( 'bp_gravatar_url', 'get_diyavatar_url', 1 );
    add_filter( 'get_avatar_url', 'get_diyavatar_url', 1 );
    add_filter( 'um_user_avatar_url_filter', 'get_diyavatar_url', PHP_INT_MAX );
    add_filter( 'bp_gravatar_url', 'get_diyavatar_url', PHP_INT_MAX );
    add_filter( 'get_avatar_url', 'get_diyavatar_url', PHP_INT_MAX );
}

替换镜像源后最好f12刷新网站查看图片加载效果,效果不好就换一个使用

自建镜像源

因为不想换来换去,本站也想过自己做一个镜像源给自己用,不过本站服务器和CDN都是国内的,建出来效果不太好所以放弃了。最简单的方法就是用CDN来回源到Gravatar,然后设置缓存规则将图片缓存起来,自然加载速度就快

自建镜像源方法

  • 新建子域名:例如avatar.website.com 用作镜像域名
  • 接入CDN:CDN最好是国际线路
  • 设置回源:回源设置为域名,将下面的Gravatar官方源选一个放入其中,或者用其它国内镜像源也可以
  • CDN设置缓存:将/avatar目录设置为全缓存,时效为最长
  • 配置防盗链:如果只是自己用就要配置防盗链,将自己域名加入白名单即可
  • 搭建完成
#Gravatar官方源#
secure.gravatar.com
cn.gravatar.com
gravatar.com
www.gravatar.com
0.gravatar.com
1.gravatar.com
2.gravatar.com
版权声明:
文章标题:国内WordPress网站替换Gravatar头像服务
文章作者:HONG
文章链接:https://www.hongnote.cn/151.html
CC共享协议许可协议:BY-NC-SA 4.0
THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录