记得在我刚写博客的时候,收到别人的评论时有一个疑问,为什么我的博客没有开放注册,但确能显示评论者的头像?反而我自己用的还是默认头像,也没有找到可以上传头像的地方。直到我自己开发 Typecho 主题的时候,才知道 Typecho 和 WordPres 这一类博客使用的是 Gravatar 的头像服务。

下面是维基百科对 Gravatar 的简单介绍:

Gravatar是一项用于提供在全球范围内使用的头像服务。只要你在Gravatar的服务器上上传了你自己的头像,你便可以在其他任何支持Gravatar的博客、论坛等地方使用它。

注册

Gravatar 的官网是:https://en.gravatar.com/

如果您还没有 Gravatar 账户的话可以点击 Create Your Own Gravatar 创建一个新的账户。注册的时候会跳转到 WordPress 的注册界面,按照提示输入相应的信息,提交信息后 Gravatar 会给您发送一封验证邮件,只需要点击邮件中的链接就能激活 Gravatar。

使用

还是进入 Gravatar 的官网,点击 Sign In 进入登录界面,输入刚才注册时填写的邮箱地址和密码登录。

登录后点击 Add a new image 上传图片,在上传之前需要选择图片等级,等级说明如下:

Gravatar图片等级说明

等级除了 G 以外都是包含不同程度的 SQ 或 暴力元素 的图片。

上传完成后如果您的 Typecho 或 WordPress 的管理员邮箱使用的是 Gravatar 的邮箱的话就能显示头像了。

如果您在其他支持 Gravatar 的博客或网站评论时填写 Gravatar 的邮箱也能显示 Gravatar 头像。

调用 Gravatar

这里以 PHP 为例简单写一下调用 Gravatar 的方法:

<?php

$email = 'email@qq.com';  //  Gravatar 的邮箱
$default = 'https://www.somewhere.com/homestar.jpg';
$size = 50;  //  要调用的尺寸

//  加密和拼接参数
$gUrl = 'https://www.gravatar.com/avatar/' . md5(strtolower(trim($email))) . '?d=' . urlencode($default) . '&s=' . $size;
?>

<img src="<?php echo $gUrl; ?>" alt="头像">

如果是前后端分离的网站的话,后端可以把拼接好的参数发给前端,前端把参数赋值给 imgsrc 就能调用了。

下面是一些用到的 PHP 函数说明:

md5()

对字符串进行 md5 加密,返回加密后的字符串。

strtolower()

把字符串转换为 小写,返回转换后的字符串。

trim()

去除字符串前后的空格、换行符、制表符,返回去除后的字符串。

urlencode()

对字符串进行 URL 编码,返回编码后的字符串。

以上就是简单的调用方法,如需查看更详细的说明可以访问:https://en.gravatar.com/site/implement/