<ul class="ffox_most_active">
<?php
$limit_num = '16';
$noneurl = get_bloginfo ('url');
$my_email = "'" . get_bloginfo ('admin_email') . "'";
$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( '2010-09-01 00:00:00', INTERVAL 43664 MINUTE )
AND user_id='0'
AND comment_author != $my_email
AND post_password=''
AND comment_approved='1'
AND comment_type='') AS tempcmt GROUP BY comment_author_email
ORDER BY cnt DESC LIMIT $limit_num
");
foreach ($counts as $count) {
$c_url = $count->comment_author_url;
if ($c_url == '') $c_url = $noneurl;
$mostactive .= '<li class="mostactive">' . '<a href="'. $c_url . '" title="' . $count->comment_author . ' ('. $count->cnt . 'comments)">'.get_avatar($count->comment_author_email,$size='40').'</a></li>';
}
echo $mostactive;
?>
</ul>
说明:核心部分就是代码中橙色部分代码,2010-09-01 00:00:00 是结束时间,43664 MINUTE 是指统计范围为 2010.9.1 0:00 前30天过7小时44分内,其实就是 2010.8.1 16:16 ~2010.8.31 24:00这个时段啦。
一些例子:
1. 2010.8.18~2010.8.20内的读者墙:date_sub( '2010-08-20 00:00:00', INTERVAL 3 DAY)
2. 最近一周内:date_sub(NOW(), INTERVAL 1 WEEK)
……
====================================
附:SQL 的 date_sub() 函数
DATE_SUB() 函数从日期减去指定的时间间隔。
语法
DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式;expr 参数是您希望添加的时间间隔。
Type 值
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
via:http://zww.me/archives/25228
<li id="Most Active Friends">
<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 != 'Dianso' AND comment_author_url != '' 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 = '';
$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>
</li>
#sidebar .ffox_most_active{overflow:hidden;height:65px;}
#sidebar ul.ffox_most_active li{padding-left:0;}
#sidebar .ffox_most_active li{list-style:none;float:left;line-height:0;border:none;}
#sidebar .ffox_most_active img.avatar{width:26px;height:26px;border:1px solid #ddd;padding:2px;margin:0 1px 0 0;}
不错,拿来用用