Avatar 的缩写, 是 gravatar 推出的一项服务,意为 「全球通用头像」(已被墙) 。如果在 Gravatar 的服务器上放置了你自己的头像,那么在
任何支持 Gravatar 的 blog 或者留言本上留言时,只要提供你与这个头像关联的 email 地址,就能够显示出你的 Gravatar 头像来。
新的主题加上了这个功能,实现起来不难,所以贴出来分享下
1. 将如下代码加到 functions.php 文件,在评论框里加上默认头像。
add_filter('comment_form_top', 'show_gravatar');
function show_gravatar() {
global $current_user;
get_currentuserinfo();
echo get_avatar( $current_user->user_email , 40); // 40 是指头像的尺寸,第 4 步也一样
}
2. 用 CSS 设置下头像的位置,这里就固定在右上角。
#commentform { position:relative }
#commentform .avatar { position:absolute; top: 0; right: 20px }
3. 下载 http://pajhome.org.uk/crypt/md5/2.2/md5-min.js,保存到主题文件夹里。
4. 重命名刚才的文件为 gravatar.js,在这个文件的最后追加如下代码:
if (document.getElementById("email")) {
document.getElementById("email").onblur = function () {
if (/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3})
{1,2})$/.test(this.value))
document.getElementById("commentform").getElementsByTagName("img")[0].src
= 「http://www.gravatar.com/avatar/」 + hex_md5(this.value) +
"?d=mm&s=40";
};
};
如果找到 email 输入框则当光标焦点移出 email 输入框时,用正则测试输入的是否是 email 格式,如果是就将之前插入的图片地址改为新生成的地址。
5. 打开 footer.php,添加如下代码:
<?php if (is_singular() && comments_open()) { ?> //判断是不是单独的 post 页面且评论打开
<script type="text/javascript" src="<?php%20bloginfo('template_url');%20?>/js/gravatar.js"></script>
<?php } ?>
简简单单的 5 步,即时显示 Gravatar 功能就完整的实现了。