Wordpress gravatar 头像缓存补充说明

  前些天写了一篇《回调函数个性化 Wordpress 评论样式》,本是一篇学习记录的文章,没想到还引起了一些反响,比如小邪本着打破沙锅问到底的原则深入研究了 PHP 的 Callback 与其在 WP 中的使用,还有 hzlzh 童鞋补充说明了 wp thread comment 和 wp recentcomments 插件在 AJAX 回复后实现 gravatar 头像缓存的方法。

  其中对于 hzlzh 关于 wp thread comment 和 wp recentcomments 插件使用生成的 gravatar 头像缓存问题,hzlzh 在《回调函数个性化 Wordpress 评论样式》评论中就和我讨论了一下下,在我准备下手解决这一问题前,hzlzh 就先我一步搞定了,佩服佩服,所以关于此方法我就不多说了,只是还想补充一点。

  因为我的嵌套回复并不是用 wp thread comment 插件实现的,而是用 Willin 大师的 WordPress 内置嵌套评论专用 Ajax comments 的方法,不过一样遇到了 hzlzh 说到的问题,在回复某条评论后且在刷新当前页面之前,该评论的 gravatar 头像是直接从 gravatar.com 调取的,而没有用缓存,其实这个问题并不严重,但是为了追求完美与全站统一的效果,还是小改一下吧,修改的方法和原理大致与 hzlzh 说的相同。

  在 comments-ajax.php 文件中找到如下代码:

<?php echo get_avatar($comment,$size='36',$default='<path_to_url>' ); ?>

  将其替换成 Willin 大师的迷你版 gravatar 头像缓存方法中的代码:

<?php
$f = md5(strtolower($comment->comment_author_email));
$a = get_bloginfo('wpurl') .'/gravatar/'.$f.'.jpg';
$e = ABSPATH . 'gravatar/'.$f.'.jpg';
$t = 1209600;
$d = get_bloginfo('wpurl'). '/gravatar/default-gravatar.png';
if ( !is_file($e) || (time() - filemtime($e)) > $t ){
$r = get_option('avatar_rating');
$g = 'http://www.gravatar.com/avatar/'.$f.'?s=32&d='.$d.'&r='.$r;
copy($g, $e);
}
if (filesize($e) < 500) {copy($d, $e);}
?>
<img width='32' height='32' class='avatar' src='<?php echo $a ?>' alt='' />

  同样的道理,对于侧边栏读者墙中的 gravatar 头像缓存也是这样实现的。

本文已盖 111 层楼

  1. 突然发现Jerry Chen小朋友居然在万老师博客打广告,哈哈哈哈。

  2. 回复 叶子 说:

    我用的是荒野孤灯文章中介绍的办法,同样强大!

  3. 你的gravatar 头像缓存多长时间清一次啊?

  4. 回复 说:

    呵,自己找到原因了,文件夹位置没放对。呵。

  5. 回复 说:

    出现以下情况是什么原因呀

    Warning: copy(/home/wmw58/public_html/3t1p/gravatar/d34d3a0e64809dc205c9cb364cd63ec9.jpg) [function.copy]: failed to open stream: No such file or directory in /home/wmw58/public_html/3t1p/wp-content/themes/3t1p/comments-ajax.php on line 152

    Warning: filesize() [function.filesize]: stat failed for /home/wmw58/public_html/3t1p/gravatar/d34d3a0e64809dc205c9cb364cd63ec9.jpg in /home/wmw58/public_html/3t1p/wp-content/themes/3t1p/comments-ajax.php on line 154

    Warning: copy(/home/wmw58/public_html/3t1p/gravatar/d34d3a0e64809dc205c9cb364cd63ec9.jpg) [function.copy]: failed to open stream: No such file or directory in /home/wmw58/public_html/3t1p/wp-content/themes/3t1p/comments-ajax.php on line 154

  6. 回复 说:

    没关系,只要帮我看看哪有问题就行了。呵。我自己改,我也不好意思麻烦你帮我改呢。

  7. 回复 说:

    暂时还有一个问题请教,我想弄个微博,在前台发表的那种,就是发表时不写标题的,但我弄了后,标题会直接调用内容做为标题,怎么样让没写标题的直接就是无标题, 日志显示时有标题就调用,没有就不调用。 不知道我说清楚没。呵

  8. 回复 说:

    难怪我上面图像显示慢,更新也慢,我也整整去

  9. 回复 jessy 说:

    测试gravatar的功能!

  10. 回复 jessy 说:

    来这里看看,感觉写的不错,收藏了!

  11. 回复 itlobo 说:

    简单点好啊,每次都要去修改function...

  12. 回复 章鱼 说:

    主题太牛逼 实在没力气搞缓存了 放弃

  13. 回复 木水 说:

    万兄的这套表情不错,我借用了~~~ :mrgreen:
    应该同意吧?

  14. 回复 willin 说:

    "迷你版" 哈! 誰幫我取的? 以前取了 "大師", 還沒結帳啊~ 現又多了一個~
    這是很基礎的 gravatar 引用 + copy 而已, 應該會代碼的都會吧~

  15. 回复 xiao3 说:

    我现在的这个是inove改过来的,所以不知道Ajax提交评论是不是可以用你上面所说的那种方法! :mrgreen:

  16. 回复 ABitNo 说:

    我也得给缓存一下,发现gravatar的网站比我的慢多了,严重影响效果

  17. 回复 Firm 说:

    大师啊,这个好,小邪的那篇我也在研究,刚好合起来用

  18. 你的人气好旺哟,天天旺旺!

  19. 哎万哥,我真的是佩服你呀,这么能折腾的。

  20. 回复 粥小卜 说:

    我都懒得换头像~

  21. 回复 超人 说:

    不是就这么替换这个就好了吧。。~~

  22. 回复 Youwei 说:

    使劲折腾吧。老了就没这份精力和激情了 :twisted:

  23. 回复 winy 说:

    我喜欢用hook get gravatar的方法缓存,不知道效率怎么样

  24. 万戈兄真是太有才了,每天必来此地取经。。

  25. 回复 江流 说:

    反正也没多少图像给我缓存 :eek:

  26. 回复 66 说:

    什么时候也抢下沙发

  27. 回复 猴子 说:

    纯围观,纯水一次。哈哈!
    :mrgreen:

  28. 回复 iBoluo 说:

    :?: 看不懂啊,先围观下吧,以后再学。

  29. 非技术性围观。。。 :eek:

  30. 对于这种完全看不懂的技术性文字,本着凑热闹想法的不明真相群众,围观中……

  31. 回复 柳城 说:

    挺好~~ 有空也改改.. :!:

  32. 回复 华斐 说:

    水势凶猛的,做做也不错! :mrgreen:

  33. 回复 数数 说:

    懒人不想在我的网站做缓存。= =

  34. 回复 小雯子 说:

    万头,Q在线不?问你个问题哈 :grin:

  35. 回复 619 说:

    非要逼我重操技术活是吧 :mad:

  36. 怎么万兄的国旗是澳洲啊

  37. 回复 zwwooooo 说:

    又折腾了,非常好,哈哈。

  38. 回复 飞晏 说:

    我已经下了决心了 考试完了换WP

  39. 来看看。。。有收获

  40. 回复 HzlzH 说:

    老万,果然追求完美,一起继续折腾吧 :mrgreen:

  41. 回复 Skyoy 说:

    前几天,在你这http://wange.im/cache-gravatar.html找到这方法,终于把头像缓存了。谢谢了。
    而用Wp-recentcomments评论插件的改下core.php着个文件也就可以实现啦。如果有用MG12的Elegant Box这个主题的朋友可以去我那看下我整理的步骤(小AD)。

  42. 回复 星网 说:

    我也反馈了呀~!为什么没有我的名字! :cry: 不公平!

  43. 回复 kisa747 说:

    感觉好复杂啊,不过继续慢慢学习

  44. 回复 evlos 说:

    哎呀呀,难道是沙发??!! :idea:

Leave a comment

您已输入0

三言两语

我的生活心情语录

工作手札

路漫漫其修远兮

精品推荐

好东西要分享

嘻哈娱乐

八卦趣事一笑而过

电脑网络

全新技术尽搜罗

转来载去

文人墨客美文赏析