WordPress 侧边栏带头像的最新评论
谨以本文献给 Nox 童鞋。昨天 Nox 就问我怎么实现 WordPress 带头像的最新评论?因为当时正好在上班,电脑上没有 DW 和 notepad++ 这类软件,玩代码很不爽,又没有实力用 Windows 自带的记事本当场写出,所以就推荐了 zww 的成果:《带头像显示的最新评论代码 - 完善篇》,不过好像还是没有解决 Nox 的问题。现在也只有周末可以折腾折腾 WordPress 了,所以今天就拿自己的 WordPress 开刀,在侧边栏实现了带 gravatar 头像的最新评论。
先说说通用版:
<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,25) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND comment_author != '万戈' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
foreach ($comments as $comment) {
$output .= "\n<li>".get_avatar(get_comment_author_email('comment_author_email'), 18). " <a href=\"" . get_permalink($comment->ID) . "#comment-" . $comment->comment_ID . "\" title=\"" . $comment->post_title . " 上的评论\">". strip_tags($comment->comment_author) .": ". strip_tags($comment->com_excerpt) ."</a></li>";
}
$output .= $post_HTML;
$output = convert_smilies($output);
echo $output;
?>
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,25) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND comment_author != '万戈' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
foreach ($comments as $comment) {
$output .= "\n<li>".get_avatar(get_comment_author_email('comment_author_email'), 18). " <a href=\"" . get_permalink($comment->ID) . "#comment-" . $comment->comment_ID . "\" title=\"" . $comment->post_title . " 上的评论\">". strip_tags($comment->comment_author) .": ". strip_tags($comment->com_excerpt) ."</a></li>";
}
$output .= $post_HTML;
$output = convert_smilies($output);
echo $output;
?>
再说说 gravatar 头像缓存版的,大家各取所需啦:
<?php
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,25) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND comment_author != '万戈' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
foreach ($comments as $comment) {
$output .= "\n<li><img width=\"18\" height=\"18\" src=\"http://wange.im/gravatar/cache/avatar/".md5(strtolower($comment->comment_author_email)). " \" /><a href=\"" . get_permalink($comment->ID) . "#comment-" . $comment->comment_ID . "\" title=\"" . $comment->post_title . " 上的评论\">". strip_tags($comment->comment_author) .": ". strip_tags($comment->com_excerpt) ."</a></li>";
}
$output .= $post_HTML;
$output = convert_smilies($output);
echo $output;
?>
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,25) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND comment_author != '万戈' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
foreach ($comments as $comment) {
$output .= "\n<li><img width=\"18\" height=\"18\" src=\"http://wange.im/gravatar/cache/avatar/".md5(strtolower($comment->comment_author_email)). " \" /><a href=\"" . get_permalink($comment->ID) . "#comment-" . $comment->comment_ID . "\" title=\"" . $comment->post_title . " 上的评论\">". strip_tags($comment->comment_author) .": ". strip_tags($comment->com_excerpt) ."</a></li>";
}
$output .= $post_HTML;
$output = convert_smilies($output);
echo $output;
?>
说明一下:代码中的“万戈”换成各自的名字就行,只是为了隐藏博主的最新留言,还有 gravatar 头像缓存的路径就根据各自的实际情况啦。
在完善 WordPress 带头像的最新评论的时候,最折腾我的就是样式,让我够累的,照顾了 Firefox,又忽略了 IE,特别是难缠的 IE6,我也是无能为力了,就先这么着吧,有时间再修改。
-
Wordpress 记录评论者 gravatar 头像2010年05月18日 -
QQ 自定义头像+Gravatar 头像缓存2010年04月6日 -
Wordpress gravatar 头像缓存补充说明2010年01月19日 -
求解 Wordpress 最新评论无法定位问题2009年12月14日
Pingback: WordPress 非插件侧栏带头像最新评论 | 我要进步
感谢万大侠啊,不过就是我在每个头像之前还有2个实心句号,一个大,一个小,感觉只要留个小的就可以了,这是怎么回事情呢!请教了!
怎么我弄过后,头像都是一样的?
正需要呢,谢谢分享,我拿过去试试
!
lai kan kan
头像缓存版代码里,少一个图片后缀名 ".jpg",否则调用不出来的
我在哪呢,我试试好多地方都不行
Pingback: Wordpress侧栏无插件显示最新评论|空中楼阁
我用了这些代码,感觉没反应!先用插件了
搞了一下,没你们做的好看。调整嫌麻烦,不加了
Pingback: WordPress 非插件侧栏带头像最新评论 | 博客吧
求教这个的CSS怎么写呢? 无从下手呢.
送个CSS吧..哈哈
如果无从下手,可以直接参照我的CSS
咋设置呢?
万戈兄,对于这个调用最新评论,我有个建议兼疑问:假如设置显示的是5条评论,那能否实现5条评论中,每人只显示一条。因为有时候有些朋友会一连评论几条,这样这个栏目显示的都是他的留言了,看起来别扭。
理论上是可以,但是代价太大,还要对每次循环多加一次判断呢
$output .= "\n".get_avatar(get_comment_author_email('comment_author_email'),
改成
$output .= "\n".get_avatar(get_comment_author_email(),
才对吧?
首先感谢万戈先生。貌似用wordpress时间不太长,但常常看到万戈的名字,谢谢这位强人。
其次谢谢晓潘,改了之后,正常显示了。
万哥,我弄了后怎么默认的头像不显示了?
Pingback: 折腾之干掉插件疯狂篇 – 静夜燃香
找到解决方法了。3Q
3.01版本似乎都失效了。
留个爪子…回去研究一下…我的那个太丑了…不整齐╯_╰
是不显示带@用户名的评论
刚换了你的代码,居然有条评论不显示,其他都显示的,杯具了
是什么评论不显示了?
强大 但是我用的就是IE6浏览器````
现在已经可以完美兼容IE6啦
万戈,你好~小弟新开了个Blog,很多东西都是学习你的博客的。看了这篇文章有一点不明白的,就是当评论的字数超过我所截取的字数时,我想有“...”表示,该怎么写?在这先谢过了
你可以试试mb_strimwidth函数
忘记和你说了,PHP相关函数我不懂~~你能说明白点吗?
请问下万戈这个是不是方小工具的最新评论的代码框里?
顺便恭喜你新增一个广告位~
不是哟,小工具里是不能放PHP的,一般是放在sidebar.php里的
谢谢哈,这个广告位刚卖出呢,呵呵
留个记号,正在烦恼这个问题呢
默认头像是因为没有获取到md5,或者是获取出错了
我也是那个问题,该怎么弄呢?
我也刚试了这个代码,只显示默认的头像,别人也有的头像没有显示,请问怎么设置呢?
wp没怎么研究!!!!!!!!!
好呢厉害啊你佩服 .
呵呵,客气了,多折腾也就自然会了
今天收到你的邮件了,来问候一下,新年快乐~~
任大侠,还记得三年前我还在用msn spaces的时候,你就给过我指点,铭记在心啊,再次来访,非常之鸡冻,欢迎啊~
很复杂的东西都没什么兴趣,但是我对你这个右栏的TAB有点兴趣,看看代码理解下。
换了 域名呀 不错 来了!
恩,上周换的,呵呵,这个简短多了
哇,好教程,我正想着怎么把我博客上自己的留言给隐藏掉呢!
你这就给出了方法了,我去试试看!呵呵
如果侧边栏都是自己的评论,感觉像是自己灌水刷屏呢,呵呵
嗯,就是啊,我现在终于弄好了,谢谢你的教程哦!O(∩_∩)O~
不要鸟IE6了~ 小尺寸头像看的还挺舒服的
呵呵,我是把IE6放在最后搞定的,实在不行就放弃
恩不错 俺回头的去搞一下
对客户访问和体验很不错哟,试试吧
说话不算数
收到了你的圣诞问候,特来问候你节日快乐
嘿嘿,谢谢啊,新年快乐哦
看不懂啊,很高深
过滤掉代码,看中文就不高深了,呵呵,其实不难
万戈童鞋真的很能折腾啊……
嘿嘿,无折腾不欢啊
万戈,我的博客都不敢把那个GRAVER头像功能给开启来,因为太拉网速了,你所说的缓存能够解决这个问题吗
可以啊,我现在就用缓存的,是从本地服务器上调取头像,你看我的慢吗?
你看我的慢吗?
我算看出来了!你是在不刷留言了!
跟你血战到底
一会给你也刷个100+,让丫服务器超负荷
真是不错,我上次改好的显示评论者信息的文件代码还没传上去,近来校园网挂了,等放假回家再折腾。
别提校园网,提丫火大
我弱弱的问一句这代码 放哪里啊 - -
要在哪里调用就放在哪里,我是在侧边栏用,就放在sidebar.php
就是羡慕这个插件。
我这个不是插件哟,纯代码
再次过来感谢戈戈,太热心了,太强大了。。我的那个感动啊,眼泪哗哗的。。。
呵呵,客气客气,还没有完美解决呢,慢慢研究~
万戈兄能不能帮我写个post-views插件函数,实现按月文章浏览排行的功能?
readers_post插件有这功能,其中hot_posts_last函数就带时间限定,默认是14天,修改一下就行
插件效果是啥样的啊?代码盲路过~~
mg12有个插件可以实现的,要方便很多
插件 好用 看的晕啊
但是代码可以更加个性化哟
MG12的插件可以的~
恩,很多插件可以代劳,但是我就爱折腾,嘿嘿
哈哈,非常感谢啊。实现了,但是有个小问题。不知道是不是我CSS错误了,头像和评论会自动分行。。。
自动分行。。。那应该就是CSS的原因吧,用position:absolute;试试
边看你博客边改,完成了两个改动.
现在想请教另两个问题:
1,评论邮件通知需要什么条件才可以实现,怎么实现?
2,Ajax提交评论.
都最好是代码实现.
先行谢过.
http://wange.im/modify-the-wordpress-theme.html
你可以看看开篇的两个链接
直接插件。。。代码我越来越头痛了
插件是省事,不过我就不喜欢省事,哈哈
插件少是好事,但是也导致了主题的专用性越来越高呵呵
呵呵,是呀,很多代码我的写死了,反正这主题收费
有米人说话就是不同
寒冬腊月雷锋月 哈哈
万戈,能不能把评论的名字去掉?我感觉只要头像就好!不然有的名字太长了,排版就不好看了!
可以啊,等会Q我
喜欢纯代码的功能
呵呵,我也是呀,就爱折腾代码
恩,插件越少越好,我还打算再去掉两个插件呢,一直没时间折腾
IE6怎么还不死。
不用死了,已经被我摆平
找个快的服务器感觉不出来
装个插件就可以了
恩,WKC插件好像有这功能,不过我更喜欢用代码DIY
插件多了影响速度。
我懒得动 哈哈
动起来很麻烦的,刚改好对IE6的CSS Hack,累的。。。
强烈的折腾 快速的发展
改内核 期待WordPress Plus
哇靠 这个算是wange版的了
( ⊙o⊙ )哇,万戈兄强力折腾WP呢,嘿嘿,支持一下,我用插件就好了,太懒了我 ~
你已经到了更高的境界,我是自叹不如的啊
晕啦。
真中文,忽略代码,这样就不会晕了
万戈就像在做针线活似的,在完善WordPress的每一个细节,使其达到最美啊。
这个形容不错,呵呵,我就是完美主义者
谢谢 过奖了 其实我也满牛逼的
。。。你这是来插一脚。。。
没事过来看看你,闪人,哈!
闪吧,把留言留下就行
隐藏博主留言怎么弄的?
http://wange.im/hide-recent-author-comment-in-wordpress.html
本来考虑过,一想到速度...
现在是零插件.
所以远没你的好哇..
只是最原始的wordpress,哈哈返璞归真.
呵呵,过奖过奖啦,我那三脚猫能算啥呀
你也弄了个这啥滴,支持zblog波^_^
是很不错的客户体验哟
这个够可爱!
对于速度至上的我来说,多加载十张图片,心疼哟
终于折腾上了?哈
恩,周末无聊着,就练练手啦