欢迎光临
我们一直在努力

Gravatar 镜像、解决方法大全

Gravatar 目前新手要去玩耍已经比较麻烦了,而老鸟的头像想在博客中正常的显示也成了一大问题,说道镜像大家首先想到的肯定是多说的,可问题是多说的镜像不支持 HTTPS 啊,全站 HTTPS 的网站必须是挂的。所以我们搬出更多的镜像。

镜像大全

引用
以下是部分 Gravatar 镜像地址:

Https源:https://secure.gravatar.com (兼容性最高,国内可以访问)
CN源:http://cn.gravatar.com (兼容性最高,国内可以访问,其实也支持 HTTPS)
@源:http://gravatar.com (兼容性最高,国内部分可以访问,其实也支持 HTTPS)

多说源:http://gravatar.duoshuo.com (延时较低,不支持 HTTPS,兼容性一般)
七牛镜像源:http://avacdn.qiniudn.com (延时较低,不支持 HTTPS,兼容性较低)
七牛镜像 HTTPS 源:https://dn-avacdn.qbox.me (延时较低,支持 HTTPS,兼容性较低)

解决大全
WordPress
1. 使用未被墙的地址(非七牛源)
注:'你要使用的源' 替换成 '上面的源,注意 http://或者 https://

  1. function unblock_gravatar( $avatar ) {
  2. $avatar = str_replace( array( 'http://www.gravatar.com', 'http://0.gravatar.com', 'http://1.gravatar.com', 'http://2.gravatar.com' ), '<strong>你要使用的源</strong>', $avatar );
  3. return $avatar;
  4. }
  5. add_filter( 'get_avatar', 'unblock_gravatar' );

2.使用未被墙的地址(七牛源)

引用
请参考:http://devework.com/qiniu-cache-acceleration-gravatar-problem.html
或者:http://immmmm.com/use-qiniu-cache-gravatar.html

3.通过代码缓存 Gravatar 头像到本地

注意:下面的代码加到functions.php中,此法支持国内主机。在WP根目录下新建avatar文件夹并给予写权限。在avatar文件夹下上传一张default.jpg的图片作为默认头像。另外在WP后台默认头像最好设置为空。 此法来:http://fatesinger.com/76006function

  1. function fa_cache_avatar($avatar, $id_or_email, $size, $default, $alt)
  2. {
  3. $avatar = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com"), "cn.gravatar.com", $avatar);
  4. $tmp = strpos($avatar, 'http');
  5. $url = get_avatar_url( $id_or_email, $size ) ;
  6. $url = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com"), "cn.gravatar.com", $url);
  7. $avatar2x = get_avatar_url( $id_or_email, ( $size * 2 ) ) ;
  8. $avatar2x = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com"), "cn.gravatar.com", $avatar2x);
  9. $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
  10. $tmp = strpos($g, 'avatar/') + 7;
  11. $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
  12. $w = home_url();
  13. $e = ABSPATH .'avatar/'. $size . '*'. $f .'.jpg';
  14. $e2x = ABSPATH .'avatar/'. ( $size * 2 ) . '*'. $f .'.jpg';
  15. $t = 1209600;
  16. if ( (!is_file($e) || (time() - filemtime($e)) > $t) && (!is_file($e2x) || (time() - filemtime($e2x)) > $t ) ) {
  17. copy(htmlspecialchars_decode($g), $e);
  18. copy(htmlspecialchars_decode($avatar2x), $e2x);
  19. } else { $avatar = $w.'/avatar/'. $size . '*'.$f.'.jpg';
  20. $avatar2x = $w.'/avatar/'. ( $size * 2) . '*'.$f.'.jpg';
  21. if (filesize($e) < 1000) copy($w.'/avatar/default.jpg', $e);
  22. if (filesize($e2x) < 1000) copy($w.'/avatar/default.jpg', $e2x);
  23. $avatar = "<img alt='{$alt}' src='{$avatar}' srcset='{$avatar2x}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
  24. }
  25. return $avatar;
  26. }
  27. add_filter('get_avatar', 'fa_cache_avatar',1,5);

4. 使用 WordPress 插件缓存头像到主机空间

注:只有主机空间能够访问 Gravatar 才可以使用,当然国内也可以通过修改源地址实现,但是此方法容易占用储存和增加服务压力
插件:FV Gravatar Cache
本文来自:https://www.vobe.io/37

Typecho

参考:http://www.gsky.org/2014/2730.html
打开 /var/Widget/Abstract/Comments.php 文件
在第 397 行找到 $url = Typecho_Common::gravatarUrl($this->mail, $size, $rating, $default, $this->request->isSecure());
修改为:

  1. $mailHash = NULL;
  2. if (!empty($this->mail)) {
  3. $mailHash = md5(strtolower($this->mail));
  4. }
  5. $url = 'https://secure.gravatar.com/avatar/';
  6. if (!empty($this->mail)) {$url .= $mailHash;}
  7. $url .= '?s=' . $size;
  8. $url .= '&r=' . $rating;
  9. $url .= '&d=' . $default;
  10. //$url = Typecho_Common::gravatarUrl($this->mail, $size, $rating, $default, $this->request->isSecure());

Emlog

打开 /include/lib/function.base.php 文件,在 640 行附近,找到如下代码:

  1. * 获取Gravatar头像
  2. * http://en.gravatar.com/site/implement/images/
  3. * @param $email
  4. * @param $s size
  5. * @param $d default avatar
  6. * @param $g
  7. */
  8. function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') {
  9. $hash = md5($email);
  10. $avatar = "<strong>http://www.gravatar.com</strong>/avatar/$hash?s=$s&d=$d&r=$g";
  11. return $avatar;
  12. }

http://www.gravatar.com 替换为上面的源。

赞(0)
未经允许不得转载:福利吧|福利社|fuliba » Gravatar 镜像、解决方法大全

相关推荐

  • 暂无文章