关于缓存 Gravatar 头像的方法我早就想拿出来说一说了,该方法来自 iShawn的博客。但是用了这个方法之后,我只能缓存一半的 Gravatar 头像,所有回复的评论者的头像都没有被缓存。这个问题一直困扰着我,让我抓狂了一个多月,终有一天,showfom 小盆友一语道破了天机,让我终于完整地实现了的 Gravatar 头像缓存,深表谢意。
Gravatar 头像缓存的好处我就不多说了,直接切入正题,缓存 Gravatar 头像至本地服务器。
1、去作者主页下载该组件,解包,上传。路径随意,我放在 /gravatar 目录下。
2、gravatar 目录内应该有两个文件夹: cache 和 profile;三个文件: index.php, .htaccess, mysql.sql
3、赋予 cache 文件夹 755 权限: chmod a+w 。
4、本地新建一个 php 文件,写入以下内容,文件名 avatar.php,上传至 profile 文件夹内。请自行更改相应内容符合自己的需求。切记要放置默认头像。
<?php
$config['default'] = 'http://domain.com/default-gravatar.png';//无头像时返回的默认头像路径
$config['rating'] = 'PG';//gravatar的内容级别
$config['size'] = 64;//头像尺寸
?>
5、编辑 .htaccess 文件,默认 RewriteRule . index.php [L] ,请依照你的实际放置目录修改,比如我的是 RewriteRule . /gravatar/index.php [L]
6、打开 WordPress 模板的 comments.php 文件,查找
<?php echo get_avatar( $comment, 32 ); ?>
替换为
<img src="http://yourdomain/gravatar/cache/avatar/<?php echo md5(strtolower($comment->comment_author_email)); ?>" alt="" />
细心的同学应该会发现,路径中的 avatar 其实就是第四步创建的那个 php 文件的名字。你还可以创建不同的 Profile 应用在各个地方。
到此,Wordpress 缓存 Gravatar 至本地的操作便完成了,首次缓存的头像日后会被直接调用而无需再跑到 gravatar 查询。快就快在这里,省略查询的时间,静态化 Gravatar。
以上方法来自作者的原文:《如何缓存 Gravatar 至本地服务器》,不过很可惜,链接已经失效。不过没关系,如果觉得这还看不懂的话,showfom 小盆友写了篇更具体的:http://showfom.com/change-hosting-and-cache-gravatar/,很有参考价值。
如果做完以上步骤后发现 Gravatar 只缓存了一部分,那就有必要继续往下看了,因为你犯了一个和我一样的错误,也不能说错误,只能说疏忽。还要感谢 showfom 的提点,否则我要一直为这另一半的 Gravatar 缓存抓狂下去了。究其原因,是因为我没有用 WordPress 原生的嵌套评论,而是用 WordPress thread comment 插件代替的,问题就出在这个插件上,另一部分的头像输出是 WordPress thread comment 插件完成的,所以要解决这个问题就要进入 WordPress thread comment 插件的后台设置,找到“编辑评论的HTML”选项,将其中调用头像部分的代码也替换成:
<img src="http://yourdomain/gravatar/cache/avatar/<?php echo md5(strtolower($comment->comment_author_email)); ?>" alt="" />
这样一来,就完美地实现了缓存 Gravatar 头像至本地服务器这一功能。
-
Wordpress 2.7+主题 gravatar 头像缓存2009年11月13日 -
QQ 自定义头像+Gravatar 头像缓存2010年04月6日 -
Wordpress gravatar 头像缓存补充说明2010年01月19日 -
Wordpress 侧边栏带头像的最新评论2009年12月26日