找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2751|回复: 0

[知识库] WordPress无法显示Gravatar头像导致速度慢的解决方法

[复制链接]
发表于 2016-4-24 09:10:59 | 显示全部楼层 |阅读模式 来自 河南省新乡市
近期有客户反映WordPress无法正常显示Gravatar头像,查找原因是因为国内屏蔽了Gravatar导致的,这导致无数国内Wordpress网站头像无法显示,并且影响到了相关页面的访问速度(如果您的WordPress网站中没用使用Gravatar头像功能,则没用任何影响)。

根据网络用户反馈,通过使用知名社交评论服务商多说提供的国内Gravatar服务,替换默认的Gravatar功能即可解决问题,且访问速度也很不错。


解决方法1:使用Gravatar的HTTPS(适用于任何主题):

在主题目录中,找到并打开 functions.php 文件,把以下代码复制放到该文件中:
  1. // HackGravatatr
  2. function wpyou_get_ssl_avatar($avatar) {
  3. $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
  4. return $avatar;
  5. }
  6. add_filter('get_avatar', 'wpyou_get_ssl_avatar');
复制代码
解决方法2:使用多说头像库替换(适用于任何主题):

在主题目录中,找到并打开 functions.php 文件,把以下代码复制放到该文件中:

  1. // HackGravatatr
  2. function wpyou_get_avatar($avatar) {
  3. $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.duoshuo.com",$avatar);
  4. return $avatar;
  5. }
  6. add_filter( 'get_avatar', 'wpyou_get_avatar', 10, 3 );
复制代码
代码正确添加到主题的 functions.php 文件后即可使用多说提供的国内Gravatar服务了,从而完美解决问题。



解决方法3:本地缓存头像:
3.1、建立缓存目录
在wp-content 的同級目录建立一个文件夹,命名为 avatar ,设置该文件夹的权限为 0755 (如果 0755 不行,就试一下 0777)。
3.2、设置默认头像
准备一张大小适合的默认头像,命名为”default.jpg” ,放在 avatar 文件夹里面。
3.3、添加缓存代码
在主题目录中,找到并打开 functions.php 文件,把以下代码复制放到该文件中:
  1. // HackGravatatr
  2. function wpyou_localcache_avatar($avatar) {
  3. $tmp = strpos($avatar, 'http');
  4. $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
  5. $tmp = strpos($g, 'avatar/') + 7;
  6. $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
  7. $w = get_bloginfo('wpurl');
  8. $e = ABSPATH .'avatar/'. $f .'.jpg';
  9. $t = 1209600; //设定14天, 单位:秒
  10. if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //当头像不存在或文件超过14天才更新
  11. copy(htmlspecialchars_decode($g), $e);
  12. } else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
  13. if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
  14. return $avatar;
  15. }
  16. add_filter('get_avatar', 'wpyou_localcache_avatar');
复制代码
更多解决WordPress无法显示Gravatar头像图片问题的方法,请访问我们之前的文章:WordPress Gravatar头像缓存插件解决头像不显示问题,通过插件缓存头像到本地服务器的方法。



什么是Gravatar?

Gravatar是Globally Recognized Avatar的缩写,是gravatar推出的一项服务,意为“全球通用头像”(已被墙)。如果在Gravatar的服务器上放置了你自己的头像,那么在任何支持Gravatar的blog或者留言本上留言时,只要提供你与这个头像关联的email地址,就能够显示出你的Gravatar头像来。
Gravatar的概念首先是在国外的独立WordPress博客中兴起的,当你到任何一个支持Gravatar的网站留言时,这个网站都就会根据你所提供的Email地址为你显示出匹配的头像。当然,这个头像,是需要你事先到Gravatar的网站注册并上传的,否则,在这个网站上,就只会显示成一个默认的头像。


发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-3-29 02:29 , Processed in 0.039340 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表