WordPress 免插件读者墙 willin 版本
我以前写过关于免插件读者墙的文章,那个版本是按每月评论最多的读者来排序的,也就是每月1号会清零重新计算。文章链接:用代码武装你的wordpress [part 1]
willin 后来根据这个修改了一下,唯一不同的 willin 修改的是按照最近 30 天内评论最多的读者排序的,我觉得这样更适合“最活跃的读者”的定义,所以我今晚换为 willin 这个版本了
因为 willin 的是使用 willin 的简单 gravatar 头像缓存的基础上的代码,我特意改出 2 个版本:1 个是针对没有使用头像缓存的,1 个是使用了头像缓存的。
一、没有使用头像缓存的读者墙代码:
<h2>Most Active Friends</h2> <ul class="ffox_most_active"> <?php $counts = $wpdb->get_results("SELECT COUNT(comment_author) AS cnt, comment_author, comment_author_url, comment_author_email FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE comment_date > date_sub( NOW(), INTERVAL 1 MONTH ) AND user_id='0' AND comment_author != 'zwwooooo' AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author ORDER BY cnt DESC LIMIT 12"); foreach ($counts as $count) { $c_url = $count->comment_author_url; if ($c_url == '') $c_url = 'http://zww.me/'; $mostactive .= '<li class="mostactive">' . '<a href="'. $c_url . '" title="' . $count->comment_author . ' ('. $count->cnt . 'comments)">' . get_avatar($count->comment_author_email, 40) . '</a></li>'; } echo $mostactive; ?> </ul>
说明:
- 里面添加了 2 个 class:ffox_most_active 和 mostactive,根据自己模板在 style.css 设置样式吧
- 里面的 http://zww.me 改为你自己博客的网址
- 代码里面“DESC LIMIT 12”的 12 是要现示的读者数量
- 代码里面的“zwwooooo”是指除博主以外的意思,替换为自己的 WP 用户名吧
我的 css 样式参考:
#sidebar .ffox_most_active li{ list-style:none; float:left; border:none; line-height:0; } #sidebar .ffox_most_active img.avatar{ width:38px; height:38px; border:1px solid #ddd;padding:2px;margin:0 1px 0 0;}
二、使用了 willin 的简单 gravatar 头像缓存的读者墙代码:
<h2>Most Active Friends</h2> <ul class="ffox_most_active"> <?php $counts = $wpdb->get_results("SELECT COUNT(comment_author) AS cnt, comment_author, comment_author_url, comment_author_email FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE comment_date > date_sub( NOW(), INTERVAL 1 MONTH ) AND user_id='0' AND comment_author != 'zwwooooo' AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author ORDER BY cnt DESC LIMIT 12"); foreach ($counts as $count) { $a = get_bloginfo('wpurl') . '/avatar/' . md5(strtolower($count->comment_author_email)) . '.jpg'; $c_url = $count->comment_author_url; if ($c_url == '') $c_url = 'http://zww.me/'; $mostactive .= '<li class="mostactive">' . '<a href="'. $c_url . '" title="' . $count->comment_author . ' ('. $count->cnt . 'comments)"><img src="' . $a . '" alt="' . $count->comment_author . ' ('. $count->cnt . 'comments)" class="avatar" /></a></li>'; } echo $mostactive; ?> </ul>
说明参考第一种
OK,CP吧 ,折腾吧
附 willin 的原文链接:《WordPress 免插件版侧边栏读者墙》
声明: 本文采用 BY-NC-SA 协议进行授权 | ZWWoOoOo
转载请注明转自《WordPress 免插件读者墙 willin 版本》



谢谢。已经弄好 了。是显示每月的吗?
@licream 我文章里面说了,willin版本是按最近30天计算的,所以不是按自然月计算的。你要自然月计算的代码参考我以前发的文章:用代码武装你的wordpress [part 1]
你好....我的博客用了你的方法以后,,出现的并不是其他读者墙的样式,效果请看下我的博客,,,希望能指点一下.谢谢
@Aaron 我修改过代码了,你注意看看头像的函数对不对,正确的是下面的:
get_avatar(get_comment_author_email('comment_author_email'), 40)
@超人 没办法,Gravatar官方网站慢了
怎么样屏蔽某个人啊?
@疾风 comment_author != 'zwwooooo'里面的 zwwooooo 改为你要屏蔽的某个人,多用户用英文逗号分开,如
comment_author != 'zwwooooo,abc,123'
@zwwooooo
谢谢你 ^_^
受你的启发我把一个卖减肥药的email 给屏蔽了 嘿嘿~··
@疾风 我直接扔黑名单
先收藏~ 呵呵
没改好。不显图。可能是主体样式差别大。用了一个其他的。呵呵。不过好像修改样式表不起作用。想给图片加个边框
@young 第一个不缓冲的可以了,但图片挨着。我的样式表好像没改对
@young 根据自己主题改css
@zwwooooo
请教:
我的主题是inove,我改成缓冲的。图也显了。格式改不好。我把代码放在
Most Active Friends
样式
#northsidebar .widget.ffox_most_active li
{
list-style:none;
float:left;
border:none;
line-height:0;
}
#northsidebar .widget.ffox_most_active img.avatar
{
width:38px;
height:38px;
border:1px solid #ddd;
padding:2px;
margin:0 1px 0 0;
}
结果 图片格式受原#siderba li 影响,要换行,背景图小圆点也显。
不好意思,代码提交不了。
代码位置
样式表应该大体怎么改
@young 这下行了,
div id="sidebar"
div id="northsidebar" class="sidebar"
div class="widget"
代码
/div
/div
/div
大体是这样,我不懂css,猜着写成
#northsidebar .widget.ffox_most_active li
{
list-style:none;
float:left;
border:none;
line-height:0;
}
#northsidebar .widget.ffox_most_active img.avatar
{
width:38px;
height:38px;
border:1px solid #ddd;
padding:2px;
margin:0 1px 0 0;
}
@young iNove的要先取消它的一些css属性,如:取消li的背景background:none;
要控制line-height
@zwwooooo
thanks.
我感觉现在是#northsidebar .widget.ffox_most_active 对不对?好像不起作用
@young 肯定不对 #northsidebar .widget.ffox_most_active
这样(注意空格)
#northsidebar .widget .ffox_most_active
@zwwooooo
谢谢!起作用了。我再调整下。呵呵
@young 慢慢折腾
@zwwooooo
多谢指导,折腾得差不多了,不知能不能经受住检验。我自己在本地测了26个评论者。呵呵。刚把网站的也更新了,有错再折腾。
再来取经!
@xiao3 随便取
请教下,为什么我用这个方法,头像垂直现实呢?希望解答下,谢谢!
哈哈,知道了,我忘了加css。
@朵未 呵呵
这个创意非常好。支持
为什么我的在IE下不显示数目呢?
@朵未 怎样不显示?
@zwwooooo 鼠标停留在上面不显示评论数。
@朵未 嗯,ie6需要添加alt值,我懒得添加了
我添加好了,可是怎么是竖着显示呢?
@Fantasy css没定义好
@zwwooooo
就是你上面的CSS样式啊~
非常喜欢这个插件
我现在就去试试,看自己能折腾出来不。
@囧啊囧 按照步骤贴代码应该没问题
修改不来代码,不知道有没有插件啊?
@囧啊囧 有插件。不过这代码简单,主要是css样式问题
好强大,这么一篇老文居然被我翻出来了,哈哈
评论人名下面的浏览器和系统版本怎么实现的呢?是插件吗?
@mealdy 对,插件WP-UserAgent
我觉得加上
AND comment_author_url != ''
这样才更完善,不计算空URL的评论
@Dianso 不过有些博客的访客很多都是没有URL的,这段代码会自动给无URL加上本站链接。
我修改来修改去都不太好看
@麦子 修改css就可以了
@zwwooooo 我修改来修改去都不好
汗,为什么总是找不到在哪儿呀,显示不出这个东东,是哪步没有弄到位啊
@指舞六弦 如果你没有折腾缓存就不要用缓存的版本哦
好像没有显示评论的数量哦
@winw 因为你用的是ie