Gravatar 头像已不再被墙?

翻博客,有时候感觉 Gravatar 头像加载有点慢,想在博客鸡子上搭个反代,网上看教程挺简单的。不过,想想博客现在的 VPS 性能本来就一般般,反代速度也快不到哪里去,作罢。

目前在用官方 https://secure.gravatar.com/avatar/ 源,代码是以前主题自带的,一直在用,囧~

function get_ssl_avatar($avatar) {
$avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2&d=mm" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
return $avatar;
}
add_filter ( 'get_avatar', 'get_ssl_avatar' );

网上看大伙介绍,cn.gravatar.com 在国内速度更好。于是打算换上试试,找到了大发三年前的文章:Gravatar 头像被墙及解决方案,WordPress 4.2 更新了 get_avatar() 函数,增加 srcset 属性——增加了对 retina 屏幕支持。

function get_ssl_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com"), "cn.gravatar.com", $avatar);
return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

代码换上,刷新,刷新,刷新……再刷新,还是在用 https://secure.gravatar.com/avatar ……

看 get_avatar 代码,然后在 get_avatar_data 代码中找到了答案:▼显示

if ( $email_hash ) {
$args['found_avatar'] = true;
$gravatar_server = hexdec( $email_hash[0] ) % 3;
} else {
$gravatar_server = rand( 0, 2 );
}

$url_args = array(
's' => $args['size'],
'd' => $args['default'],
'f' => $args['force_default'] ? 'y' : false,
'r' => $args['rating'],
);

if ( is_ssl() ) {
$url = 'https://secure.gravatar.com/avatar/' . $email_hash;
} else {
$url = sprintf( 'http://%d.gravatar.com/avatar/%s', $gravatar_server, $email_hash );
}

$url = add_query_arg(
rawurlencode_deep( array_filter( $url_args ) ),
set_url_scheme( $url, $args['scheme'] )
);

/**
* Filters the avatar URL.
*
* @since 4.2.0
*
* @param string $url The URL of the avatar.
* @param mixed $id_or_email The Gravatar to retrieve. Accepts a user_id, gravatar md5 hash,
* user email, WP_User object, WP_Post object, or WP_Comment object.
* @param array $args Arguments passed to get_avatar_data(), after processing.
*/
$args['url'] = apply_filters( 'get_avatar_url', $url, $id_or_email, $args );

如果博客开启 SSL,头像使用 secure.gravatar.com 源;不开启 SSL,随机使用 0.gravatar.com、1.gravatar.com 以及 2.gravatar.com。开启 SSL 情况下,可以使用下面代码切换到 cn.gravatar.com:

function get_ssl_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com", "secure.gravatar.com"), "cn.gravatar.com", $avatar);
return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

不知道是不是心理作用,Gravatar 头像换到 cn.gravatar.com 后感觉是快了一点点。

折腾过程中发现,www.gravatar.com、0.gravatar.com、1.gravatar.com、2.gravatar.com、secure.gravatar.com 和 en.gravatar.com 这些网址无需爱国就能正常访问,速度也不慢,这么说,Gravatar 头像已不再被墙?

快报:Vultr 最新活动,充 $5 送 $25,可以用 $2.5 套餐 VPS 一年,活动即将结束,快上车【点击查看】| 搬瓦工年付 $19 中国直连线路补货,优惠码:BWH1ZBPVK,『点击直达
声明: 除非注明,常阳时光文章均为原创,转载请以链接形式标明本文地址
本文地址:https://cyhour.com/725/
Views: 288 Tags:  , 

Comments:25

  1. 我觉得解禁貌似有一两年了

    2018.04.21 16:36 # 回复
    1楼
  2. 解封好久了吧,现在用cn的节点。

    2018.04.21 18:35 # 回复
    2楼
  3. 赶紧把google和dropbox解禁吧

    2018.04.21 21:29 # 回复
    3楼
  4. 最近这个https://secure.gravatar.com/有点不稳了,已经换了CN的,实在不行就自己搞一个反代。

    2018.04.21 23:43 # 回复
    4楼
  5. 其实不必那么复杂,可以直接在七牛这样的CDN上镜像gravatar站点,然后用镜像后的链接替代即可,反正自己用不公开流量又不会大到哪儿去,国内速度又快。

    2018.04.22 03:43 # 回复
    5楼
    • @Vans爱好者 目前看已经不墙了,官方 cn 源速度就挺快的。骑牛啥的,需要域名备案了才好使吧?

      2018.04.22 08:15 # 回复
  6. secure.gravatar.com和cn.gravatar.com感觉速度没什么差别

    2018.04.22 10:34 # 回复
    6楼
    • @zlsin 嗯,速度应该都差不多。有时候 cn.gravatar.com 延迟比 secure.gravatar.com 还高呢。

      2018.04.23 08:42 # 回复
  7. 放弃挣扎吧,多大年纪了,还玩博客

    2018.04.23 15:46 # 回复
    7楼
  8. Ton

    我还以为一直被墙着呢。囧

    2018.04.23 21:07 # 回复
    8楼
  9. 我是有感觉偶尔还是会抽,但大部分时间还是正常的。

    2018.04.26 22:40 # 回复
    9楼
  10. 用的v2ex的!

    2018.05.01 00:54 # 回复
    10楼
  11. 目前先用secure.gravatar.com

    2018.05.05 08:12 # 回复
    11楼
  12. 这提交速度。。好快!再来一发!

    2018.05.05 08:12 # 回复
    12楼
    • @郑永 来来来,再来几发……貌似提交速度与评论回复邮件通知有关。secure.gravatar.com 和 cn 有时候 ping 到其实是差不多的 IP,速度也差不多的,除非抽风。

      2018.05.05 09:17 # 回复
  13. 刚改成本地缓存了

    2018.05.13 01:02 # 回复
    13楼
    • @FROYO 改本地缓存不能完美吧?以前试过本地缓存,但是有些地方大尺寸,有些地方小尺寸,就有可能大尺寸的地方显示小尺寸的图片,模糊……

      2018.05.13 09:56 # 回复

发表留言

彩蛋:Vultr 充 $5 送 $25,活动即将结束,快上车【点击查看】| 搬瓦工年付 $19 中国直连补货,优惠码:BWH1ZBPVK,『点击直达