之前有篇博文跟大家介绍了下之评论用填写完整邮箱可以显示个人的gravatar头像,但是在最近的操作中我发现使用该方法有时无法正常显示gravatar头像,所有的评论用户统一显示zblog默认头像0.png,检查过头像地址调用标签{$comment.Author.Avatar}后好像也没问题,请教朋友,发现我们可以使用md5加密邮箱地址传递参数的方法解决此问题。

实现的原理和实现办法如下:

首先,gravatar头像地址格式是:

http://cn.ravatar.com/avatar/6a4433c88a97f06e0a52bab7f22

后面的那一串是Gravatar使用的是MD5加密之后的Email字符串,因此只需要使用MD5把评论用户的邮箱加密成字符串,然后添加到

http://cn.ravatar.com/avatar/

然后即可调用该邮箱gravatar头像。

最后解决此问题的代码如下:

{php}

$avatar = md5(strtolower($comment->Author->Email));

{/php}

<img src="http://cn.gravatar.com/avatar/{$avatar}" alt="{$comment.Author.StaticName}"/>

$comment->Author->Email是评论用户邮箱代码