Hot-Friend插件Gravatar头像缓存

我的友链是用Hot friend插件弄的,会读取留言者的地址和链接表里地址绑定,然后用留言者的头像来显示链接表,效果我很喜欢

不过不知道什么时候Hot Friend从Wordpress插件中心删除了,现在Gravatar头像系统也不是那么稳定,当然不是这个系统不稳定,而是某墙喜欢抽风

所以决定把hot friend里的头像也开启缓存,我使用GravatarLocalCache来缓存gravatar,但是这个插件只能缓存用get_avatar函数来获取的头像

开始我找到一个imgcache的插件,只需要在img标签里加上一个ref属性,值为imgcache4wordpress,我试验了feedburner的订阅统计按钮,很给力

1
<img ref="imgcache4wordpress" src="http://xxx.com/xxx.jpg" />

然后修改了hot friend插件代码,让生成的头像img标签里加上ref=imgcache4wordpress,但是实际没效果

联系了imgcache的作者,作者非常热情的回复我,得知imgcache不是缓存所有地方的图片,只是缓存the_content、the_content_rss、widget_text等几个地方的图片,全局比较影响效率

我尝试着添加了hot friend的输出函数,但是还是没效果,无奈放弃,重新想怎么在hot friend里实现

后来骂自己2B了,我都在hot friend里修改代码加上ref属性了,为什么不改成get_avatar函数来获取头像。。。。这样不直接搞定了

好了,不废话了,下面开始说怎么修改,修改的地方只有一处,非常简单

修改wp-content/plugins/hot-friends/hot_friends.php

1
2
3
$avatar = $friend['avatar'];
$avatar = "![\](\)";
$output .= "<span>[{$avatar}](\ "\")</span>";

修改为如下代码,改为get_avatar获取头像

1
2
3
4
$avatar = $friend['avatar'];
$avatar = get_avatar($friend['email'], $size, '', $alt);
$avatar = substr_replace($avatar, "img style=\"{$margin}\"", 1, 3);
$output .= "<span>[{$avatar}](\ "\")</span>";

这里由于get_avatar生成的头像img标签里没有style属性,变的很难看,在外面加一层div标签没用,于是我用了个很2B的办法

把生成的img标签里的img替换成img+style属性,没研究其他好的办法,至少这办法可行

效果还不错吧,这个方法同样适用于Reader Wall插件,只需要把里面头像获取改为get_avatar函数获取

声明: 除非注明,小峰网络遨游记文章均为原创,转载请以链接形式标明本文地址

本博客原创文字只代表本人某一时间内的观点或结论,与本人所在公司没有任何关系。

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

第三方若用于商业用途的转载,须取得本人授权。

本文作者:

本文地址:http://xfeng.me/hot-friend-plugin-gravatar-cache/

你可能还对下面文章感兴趣: