Old

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>

说明:

  1. 里面添加了 2 个 class:ffox_most_active 和 mostactive,根据自己模板在 style.css 设置样式吧
  2. 里面的 http://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 = '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 免插件版侧边栏读者墙

zww
or
oooo

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/24732

190 comments

  1. A.shun A.shun Opera 10 Opera 10 Windows XP Windows XP

    沙发

    沙发
  2. A.shun A.shun Opera 10 Opera 10 Windows XP Windows XP

    这一次很详细,文囧星人威武 :wink:

  3. mytion mytion Firefox 3 Firefox 3 Windows XP Windows XP

    离开一会又没有沙发啦

    板凳
  4. ......
  5. 媛诺诺 媛诺诺 Sogou Explorer Sogou Explorer Windows 7 Windows 7

    改了边栏和CSS读者墙还是竖直的,给你发了邮件,希望能得到你的帮助。

    81楼
  6. 媛诺诺 媛诺诺 Sogou Explorer Sogou Explorer Windows 7 Windows 7

    谢谢啊,用了你给的代码就可以了,不过我还想让读者墙三个字和我博客侧边栏的热门文章之类的字体一致,请问要怎么改?

    82楼
    • zwwooooo zwwooooo Firefox 4 Firefox 4 Windows 7 Windows 7

      @媛诺诺
      #sidebar .ffox_most_active li{
      list-style:none;
      float:left;
      border:none;
      line-height:0;
      }
      这段没用,删了吧,然后
      #main .widget-area ul.ffox_most_active li{float:left;}变成
      #main .widget-area ul.ffox_most_active li{float:left;list-style:none;}
      再完美点就加上如下
      #main .widget-area ul.ffox_most_active{margin-left:0;}
      如果觉得右边有空位就把头像改为33×33大小,这样一行就能显示6个头像,总头像就设为18个,自己算一下就行了。

    • 媛诺诺 媛诺诺 Sogou Explorer Sogou Explorer Windows 7 Windows 7

      @zwwooooo
      简直太完美了,灰常感谢博主

    • zwwooooo zwwooooo Firefox 4 Firefox 4 Windows 7 Windows 7

      @媛诺诺
      折腾的乐趣在此,稍微了解一下css你会觉得更有意思,如下面的:
      #sidebar .ffox_most_active img.avatar{
      width:33px;
      height:33px;
      border:1px solid #ddd;padding:2px;margin:0 1px 0 0;}
      这些是不起作用的,你要它们起作用,那么应该把#sidebar .ffox_most_active img.avatar改为#main .widget-area ul.ffox_most_active img.avatar
      但这样的话就要重新调整头像大小和数字了,慢慢折腾。

    • zwwooooo zwwooooo Firefox 4 Firefox 4 Windows 7 Windows 7

      @媛诺诺
      今天起早了,另外跟你解释一下#main .widget-area ul.ffox_most_active img.avatar里面的css属性:
      width:33px;
      height:33px;
      这2个是头像的宽和高,所以头像大小你不需要去修改读者墙代码(只要那个头像调用函数get_avatar的数值大于此宽高即可,你现在设置的是33)
      border:1px solid #ddd;
      这个是给头像加框框啦
      padding:2px;
      这个是头像跟框框的间距
      margin:0 1px 0 0;
      这是每个头像右边间隙。

  7. twentyten默认主题免插件读者墙 | 安静的角落 - pingback on 2011/04/04/ 17:57
    83楼
  8. 无冷 无冷 Google Chrome 10 Google Chrome 10 Windows 7 Windows 7

    过来求教 单人评论数 的函数

    84楼
    • zwwooooo zwwooooo Firefox 4 Firefox 4 Windows 7 Windows 7

      @无冷
      你指某个人的评论数?貌似是要用sql实现,具体搜索一下,有人写过类似的。

    • 无冷 无冷 Google Chrome 10 Google Chrome 10 Windows 7 Windows 7

      @zwwooooo
      恩,多谢,偶去搜索下

  9. 非插件读者墙如何实现 | 泊风 - pingback on 2011/06/01/ 23:24
    85楼
  10. fuck | Outsiders - pingback on 2011/06/17/ 00:52
    86楼
  11. 雨帆 雨帆 Google Chrome 13 Google Chrome 13 Windows 7 Windows 7

    对于一个代码白痴来说,这个看起来很有压力~!

    87楼
  12. 套图部落 套图部落 Google Chrome 14 Google Chrome 14 Windows 7 Windows 7

    正是需要的功能呢

    88楼
  13. infly infly Maxthon 3 Maxthon 3 Windows XP Windows XP

    这要什么插件吗?

    89楼
  14. Duoqiu Duoqiu Google Chrome 16 Google Chrome 16 Windows 7 Windows 7

    亲爱的zww。为什么我在本地测试的时候。侧边栏是竖直显示的吖。css具体要肿么改吖、、求指导。。

    90楼
  15. infly infly 360Safe Explorer 360Safe Explorer Windows 7 Windows 7

    有点复杂

    91楼
  16. 番茄 番茄 Firefox 16 Firefox 16 Windows XP Windows XP

    继续折腾去。

    92楼
  17. 天添MM 天添MM Internet Explorer 9 Internet Explorer 9 Windows 7 Windows 7

    我准备折腾这个了。正在找资料

    93楼

Leave a Reply