阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 15122阅读
  • 1回复

Gravatar 镜像、解决方法大全

级别: 论坛版主
发帖
9349
云币
14165
— 本帖被 ivmmff 从 开发者交流 移动到本区(2015-08-31) —
前言 );VuZsmi  
{QylNC9  
Gravatar 目前新手要去玩耍已经比较麻烦了,而老鸟的头像想在博客中正常的显示也成了一大问题,说道镜像大家首先想到的肯定是多说的,可问题是多说的镜像不支持 HTTPS 啊,全站 HTTPS 的网站必须是挂的。所以我们搬出更多的镜像。 t"YsIOT:O"  
A]5];c  
镜像大全 MjQju@  
引用
以下是部分 Gravatar 镜像地址:
Https源:https://secure.gravatar.com (兼容性最高,国内可以访问) 0QW=2rs  
CN源:http://cn.gravatar.com (兼容性最高,国内可以访问,其实也支持 HTTPS) ;aW k-  
@源:http://gravatar.com (兼容性最高,国内部分可以访问,其实也支持 HTTPS)
多说源:http://gravatar.duoshuo.com (延时较低,不支持 HTTPS,兼容性一般) (g/A uL  
七牛镜像源:http://avacdn.qiniudn.com (延时较低,不支持 HTTPS,兼容性较低) Gj-nT N  
七牛镜像 HTTPS 源:https://dn-avacdn.qbox.me (延时较低,支持 HTTPS,兼容性较低)
|k90aQO  
1S!}su,uH  
解决大全 c+e?xXCEAz  
WordPress n`&D_AbQ  
1. 使用未被墙的地址(非七牛源) 2;WbXc!#!  
注:'你要使用的源' 替换成 '上面的源,注意 http://或者 https:// K&`1{,  
  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' );
]q{_i   
Sk>=C0f:  
2.使用未被墙的地址(七牛源) iaEQF]*cC  
l;@+=uVDHm  
引用
请参考:http://devework.com/qiniu-cache-acceleration-gravatar-problem.html r>peKo[X(  
或者:http://immmmm.com/use-qiniu-cache-gravatar.html
(~zu4^9w  
cI\[)5&  
"%Y=+  
3.通过代码缓存 Gravatar 头像到本地 C&H'?0Y@  
jL^@;"/XhC  
I ]ZZN6"  
注意:下面的代码加到functions.php中,此法支持国内主机。在WP根目录下新建avatar文件夹并给予写权限。在avatar文件夹下上传一张default.jpg的图片作为默认头像。另外在WP后台默认头像最好设置为空。 此法来http://fatesinger.com/76006function ;Go^)bN ;  
  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);
$$NWN?H~  
4. 使用 WordPress 插件缓存头像到主机空间 O8$~dzf,2  
|_TI/i>?'  
注:只有主机空间能够访问 Gravatar 才可以使用,当然国内也可以通过修改源地址实现,但是此方法容易占用储存和增加服务压力 8CZfz!2  
插件:FV Gravatar Cache zT78FliY6  
本文来自:https://www.vobe.io/37 bc'IoD/  
4-x<^ ev=  
Typecho mW%8`$rVEO  
/ki-Tha  
参考:http://www.gsky.org/2014/2730.html j@z IJ  
打开 /var/Widget/Abstract/Comments.php 文件 Mg`!tFe3  
在第 397 行找到 $url = Typecho_Common::gravatarUrl($this->mail, $size, $rating, $default, $this->request->isSecure()); "x=\mA#`  
修改为: l EFd^@t  
  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());
0<\|D^m=&h  
Emlog :,JaOn'  
l5Bm.H_  
打开 /include/lib/function.base.php 文件,在 640 行附近,找到如下代码: 8eS(gKD  
  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. }
ZgxB7zl//  
3t TOs  
http://www.gravatar.com 替换为上面的源。 k9rws  
K/ On|C  
 80@\e  
本文来自:https://www.vobe.io/37 AuXUD9 -  
[ 此帖被ivmmff在2015-08-06 22:08重新编辑 ]
级别: 新人
发帖
3
云币
8
只看该作者 沙发  发表于: 2015-08-31
ReGravatar镜像、解决方法大全
不错分享,收下了。
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 82 + 4 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)