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 = 'https://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>

说明:

  1. 里面添加了 2 个 class:ffox_most_active 和 mostactive,根据自己模板在 style.css 设置样式吧
  2. 里面的 https://zww.me 改为你自己博客的网址
  3. 代码里面“DESC LIMIT 12”的 12 是要现示的读者数量
  4. 代码里面的“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 = 'https://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 免插件版侧边栏读者墙

zww
or
oooo

“WordPress 免插件读者墙 willin 版本”有190条评论

  1. 朵未 says:

    请教下,为什么我用这个方法,头像垂直现实呢?希望解答下,谢谢! :lol:

  2. 朵未 says:

    哈哈,知道了,我忘了加css。

  3. hiswing says:

    这个创意非常好。支持

  4. 朵未 says:

    为什么我的在IE下不显示数目呢?

    1. zwwooooo says:

      @朵未 怎样不显示?

    2. 朵未 says:

      @zwwooooo 鼠标停留在上面不显示评论数。

    3. zwwooooo says:

      @朵未 嗯,ie6需要添加alt值,我懒得添加了

  5. Fantasy says:

    我添加好了,可是怎么是竖着显示呢?

    1. zwwooooo says:

      @Fantasy css没定义好

    2. Fantasy says:

      @zwwooooo
      就是你上面的CSS样式啊~

  6. BB霜 says:

    非常喜欢这个插件

  7. 囧啊囧 says:

    我现在就去试试,看自己能折腾出来不。

    1. zwwooooo says:

      @囧啊囧 按照步骤贴代码应该没问题

  8. 囧啊囧 says:

    修改不来代码,不知道有没有插件啊?

    1. zwwooooo says:

      @囧啊囧 有插件。不过这代码简单,主要是css样式问题

  9. mealdy says:

    好强大,这么一篇老文居然被我翻出来了,哈哈

  10. mealdy says:

    评论人名下面的浏览器和系统版本怎么实现的呢?是插件吗?

    1. zwwooooo says:

      @mealdy 对,插件WP-UserAgent

  11. Dianso says:

    我觉得加上
    AND comment_author_url != ''

    这样才更完善,不计算空URL的评论

    1. zwwooooo says:

      @Dianso 不过有些博客的访客很多都是没有URL的,这段代码会自动给无URL加上本站链接。

  12. 麦子 says:

    我修改来修改去都不太好看

    1. zwwooooo says:

      @麦子 修改css就可以了

    2. 麦子 says:

      @zwwooooo 我修改来修改去都不好 :???:

  13. 汗,为什么总是找不到在哪儿呀,显示不出这个东东,是哪步没有弄到位啊 :sad:

    1. zwwooooo says:

      @指舞六弦 如果你没有折腾缓存就不要用缓存的版本哦

  14. winw says:

    好像没有显示评论的数量哦

    1. zwwooooo says:

      @winw 因为你用的是ie

  15. alexin says:

    想请zwwooooo帮我改一下代码,可以不?因为我不懂代码。我就是想建立一个页面来放读者墙,在网上找了一段代码,跟你的上面的代码很相似。但我想改为基于willin的简单gravatar 头像缓存的读者墙,用你的缓存语句总是无法正确,所以想请你帮帮忙,可以吗?可以的话我再发代码给你,谢谢

  16. 有点蓝 says:

    以前那个不知道为什么会实效了,显示空白,百度一搜,居然又找到这里了 :cool:

    1. zwwooooo says:

      @有点蓝
      不会无缘无故失效的

  17. Gorgons. says:

    这是什么版本的?我的wp想添加读者墙了

    1. zwwooooo says:

      文章里面有说

  18. 总算折腾完了。。。 :smile:

  19. lee says:

    你好,用第一个代码时,发现以下问题:
    1、IE6 下移上头像不显示提示(用户名与评论数)
    2、用 xammp 搭建本地服务器(测试用),显示正常,而上传到服务,结果发现数据不一样,而且有部分评论者不显示 (本地数据与服务一致),请问是怎么回事?似乎是本地的更为准确!

    1. zwwooooo says:

      @lee
      1. ie只显示图片alt的值,这个代码没有,get_avatar()函数本身不能输出正确的alt值
      2.本地ok的话,服务器也没啥问题。

      楼下:
      post_password是文章加密时用的,无视
      comment_approved='1'指审核通过的评论
      comment_type=''顾名思义,评论类型,评论有comment、Trackbacks、Pingbacks之分,留空默认all

  20. lee says:

    其中下面的是什么意思? :oops:
    post_password=''
    comment_approved='1'
    comment_type=''

发表评论

昵称 *

网址

B em del U Link Code Quote