将Gravatar头像缓存到七牛镜像服务器并解决参数问题

在之前一直使用的默认的get_avatar函数来获取评论者的头像,发现速度并不理想,因为gravatar的服务器在美国,所有有时候全部网页文件都打开了就是只有头像一直在转啊转,于是有了这篇wordpress教程:Gravatar头像缓存到本地,当然这里放到自己服务器也是挺不错的。

但是如果你或许因为各种原因不想使用了,目前我就是因为free-cookie的问题,可以百度一下,或者是新手觉得这个操作太麻烦了,各种权限,新建文件夹之类的。

那为什么不使用多说的镜像呢?原因很简单,多说不稳定,时常抽风。

所以今天的主题就是利用七牛云存储的镜像功能,来实现头像的缓存,并且不修改源文件的方法来解决参数问题,也就是头像的大小问题。

通过七牛云存储 缓存加速Gravatar 头像教程

首先、如果你还没有七牛云存储的账号,你可以通过我的链接去申请,我将获得免费的5GB流量,七牛的申请地址:https://portal.qiniu.com/signup?code=3laqnsyfvidzm

接下来,我们将对七牛的空间进行设置。因为过于简单,这里我复制devework的一些教程:

一、新建空间。登陆七牛云存储 开发者后台,新建个空间,比如Jeff 新建个名为“gravatar”的空间(要设置为公开),对应的二级域就是gravatar.qiniudn.com。

二、源站加速。点击该空间的“空间设置”—“源站加速”—“一键加速”,输入多说所在的 gravatar.duoshuo.com

本步骤是镜像多说缓存Gravatar 头像的地址,你也可以直接镜像Gravatar官方的 www.gravatar.com 。

修改主题文件

接下来就是在七牛云存储中利用图片处理的参数来设定头像的大小尺寸。我这里选择的是“-”中划线。

最后就是将一下代码丢到你的wordpress主题的functions.php中:

function wpmee_get_avatar($avatar, $id_or_email, $size='40', $default, $alt='') {  $email = $id_or_email->comment_author_email;  $email_hash = md5( strtolower( trim( $email ) ) );  $grav_url = "http://wpmee.qiniudn.com/avatar/" .  $email_hash ."-". $size;  $my_avatar = "<img src='$grav_url' alt='{$alt}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";  return $my_avatar;  }  add_filter( 'get_avatar', 'wpmee_get_avatar', 10, 3 );

注意修改成你要的头像尺寸,我这里是40,也就是我的七牛自定义的图片样式名称,将其中的wpmee改成你自己的镜像的二级域名,因为本人是免费的所以流量不多。

最后的输出格式就是这样:http://wpmee.qiniudn.com/avatar/50ad321e53732e7b5a6593c3223fa9b0-40

当然,这段代码是我东拼西凑搞出来的,具体其他参数以及其他功能需要自己DIY,反正我测试是木有问题的。。。有问题欢迎提出来,大家一起共同学习!

教程参考:http://devework.com/qiniu-cache-accelerate-gravatar.html

更新,参考wordpress源文件放个比较全面的版本,这个跟修改源文件差不多的感觉了,但是可以直接丢到functions.php里:

//头像缓存之七牛镜像多说源  function my_get_avatar($avatar, $id_or_email, $size='40', $default, $alt='') {  if ( ! get_option('show_avatars') )  return false;    if ( false === $alt)  $safe_alt = '';  else  $safe_alt = esc_attr( $alt );    if ( !is_numeric($size) )  $size = '40';  $email = '';  if ( is_numeric($id_or_email) ) {  $id = (int) $id_or_email;  $user = get_userdata($id);  if ( $user )  $email = $user->user_email;  } elseif ( is_object($id_or_email) ) {  if ( ! empty( $id_or_email->comment_type ) && ! in_array( $id_or_email->comment_type, (array) $allowed_comment_types ) )  return false;  if ( ! empty( $id_or_email->user_id ) ) {  $id = (int) $id_or_email->user_id;  $user = get_userdata($id);  if ( $user )  $email = $user->user_email;  }  if ( ! $email && ! empty( $id_or_email->comment_author_email ) )  $email = $id_or_email->comment_author_email;  } else {  $email = $id_or_email;  }  $email_hash = md5( strtolower( trim( $email ) ) );  $host = sprintf( "http://wpmee.qiniudn.com", ( hexdec( $email_hash[0] ) % 2 ) );  $out = "$host/avatar/".$email_hash.'-'.$size;  $out = str_replace( '&#038;', '&amp;', esc_url( $out ) );  $avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";    return $avatar;  }  add_filter( 'get_avatar', 'my_get_avatar', 10, 3 );

 


版权免责声明

本资源仅用于个人学习测试使用,禁止用于任何商业环境,请于下载后24小时内删除本资源!

本文所有相关技术/资源内容统一放在下载包里

  1. 1、本网站名称:源码社
  2. 2、本站永久网址:https://www.nicedowns.com
  3. 3、站内所有资源均可通过日常签到等任务进行免费兑换,记得每日来本站签到哦~!。、
  4. 4、如果您觉得本站有帮助到您,也想给本站一些帮助。您可以再下方打赏本站。
  5. 5、本站资源来源于互联网收集/个人购买,如有侵犯到您的权益,请查看【版权声明】
  6. 6、本站提供的所有资源均来自互联网搜索,站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业环境,任何人不得擅作它用,否则后果自负!请在下载24小时内删除!为尊重作者版权,请购买原版作品,支持你喜欢的作者,谢谢!
  7. 7、本站资源大多存储在云盘,如发现链接失效 【链接失效】 我们会第一时间更新。本站提供的源码、模板、软件工具等其他资源,都不包含技术服务 请大家谅解!

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索