分文网

WordPress非插件读者墙

Posted by admin on 六月 8th, 2010

一天不折腾wordpress就觉得有点痒,这不,又给网站添加了个小读者墙。为什么叫小墙呢,因为之前的文章:WordPress插件:wp-reader-wall读者墙已经介绍过了,现在只是在侧边栏里实现此功能。

google一下,万戈兄、zww童鞋、willin等大师一一罗列,不过最终还是选择了zww童鞋的方法,因为我没有做gravatar头像的缓存,只是借用了wordpress 3.0里的方法。有兴趣的童鞋可以去木木童鞋这里查看:传送门

步骤一、添加如下代码到主题目录下的siderbar.php文件里

<h2>本月水王</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 != 'admin' 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://www.ifenwen.com/';
$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>

其中www.ifenwen.com换成自己的网址,admin换成自己的用户名,“DESC LIMIT 12”的12是要现示的读者数量。

然后再在主题目录下的style.css文件里定义上述class:ffox_most_active 和 mostactive。下面提供木木的参考:

#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;}

我在应用时,做了点小修改,就是将“list-style:none”去掉了,否则我的页面显示12个头像成一列,不知道是什么原因,几番折腾之后发现将这一句去掉即可。不过经检测,在ie8下显示还是有问题,ie6就不知道了,估计八成有问题。在其他诸如chrome、opera、safari里显示均没有问题,搞得头都大了。还有头像大小也将“38”改成了“32”,总之,根据自己的主题、自己的样式折腾去吧。

6月21日更新:将代码中的

$mostactive .= '<li class="mostactive">' . '<a href="'. $c_url . '" title="' . $count->comment_author . ' ('. $count->cnt . 'comments)">' . get_avatar($count->comment_author_email, 40) . '</a></li>';

改成

$mostactive .= '<class="mostactive">' . '<a href="'. $c_url . '" title="' . $count->comment_author . ' ('. $count->cnt . 'comments)">' . get_avatar($count->comment_author_email, 32) . '</a></class>';

上述ie8下显示不正常问题完美解决。

相关文章:

  1. 呵呵,,我成水王了 :!:

  2. 呵呵 恭喜恭喜 :eek:

  3. 现在用手机上,想折腾都没法……

  4. 我居然能也排上号了。。。 :arrow: :arrow: :arrow:

  5. 建议加个title,鼠标指到头像图片就显示水了多少句话。
    加上别人的链接,我看着舒服多了,呵呵 :mrgreen:

  6. 还是觉得插件方便。 :smile:

  7. 努力挣当你的水王

  8. 折腾不断,才能出个新世界,继续。

  9. 我这里有显示评论数量 链接倒是没有 直接点就可以了 :twisted:

  10. 各有优劣吧 反正也不复杂 尝试下了

  11. 什么时候给ZB添加一个读者墙吧,我也弄一个。。。

  12. 水水更健康,哈

  13. 水王路过,留名纪念,呵呵!

  14. 能不用插件就尽量不用插件,给博客减压…

  15. 好东西,

  16. 呵呵,不错的东东~

  17. 额α都那么水,我也来加水袄

  18. 都是牛人

  19. 也去整一个吧

  20. 我的还是单列显示~~按照你的方法。 :???:

  21. 是按照最新更新的方法尝试的么 可以再考究考究代码 看看

  22. [...] [...]

  23. 呵呵 挑个错 第二段开头 “google以下”

  24. 谢谢 已经更正

  25. 不做水王好多年。

  26. 分析的还是蛮详细的,支持下~

  27. 在哪里添加target,让它新窗口打开

  28. @liveme:可以参考我之前的文
    利用jQuery实现链接在新窗口打开
    谢谢

  29. 我也准备搞一个,不过可能应该也是插件完成,不过12个插件了,纠结啊!

  30. 你中间那个上下跑动的箭头怎么做啊

  31. @沙拉酷儿:边栏搜索 上下滚动

  32. 话说,墙呢?没有找着哦

访客留言