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

首先、如果你还没有七牛云存储的账号,你可以通过我的链接去申请,我将获得免费的5GB流量,七牛的申请地址:
七牛云存储
接下来,我们将对七牛的空间进行设置。因为过于简单,这里我复制网上的一些教程:

一、新建空间

登陆七牛云存储 开发者后台,新建个空间,比如Bill 新建个名为“gravatar”的空间(要设置为公开),对应二级域名要在空间设置里找。 eg:如图 QQ图片20150608201556 QQ图片20150608203342

二、源站加速

点击该空间的“空间设置”—“源站加速”—“一键加速”,输入多说所在的 gravatar.duoshuo.com eg:如图 QQ图片20150608201815 QQ图片20150608201854 本步骤是镜像多说缓存Gravatar 头像的地址,你也可以直接镜像Gravatar官方的 www.gravatar.com 。

三、修改主题文件

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

四、最后就是将一下代码丢到你的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://<span style="color: #ff6600;">wpmee.qiniudn.com</span>", ( hexdec( $email_hash[0] ) % 2 ) );
$out = "$host/avatar/".$email_hash.'-'.$size;
$out = str_replace( '&amp;#038;', '&amp;amp;', esc_url( $out ) );
$avatar = "&lt;img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' /&gt;";

return $avatar;
}
add_filter( 'get_avatar', 'my_get_avatar', 10, 3 );
注意:上面的wpmee.qiniudn.com要换成你的七牛二级域名。
LEAVE A REPLY
loading
正在赶回来……