WordPress 免插件版侧边栏读者墙

同学们,我的博客终于又多了一抹色彩,那就是侧边栏的“本月水王”专栏,更多博友称之为读者墙,但是我只是把这个功能放在侧边栏,而不是单独列为一个页面,所以充其量只是一面“小墙”。

读者墙功能最近好像比较火,一方面可以鼓励访客留言,另一方面也方便博主回访。我最初是在林木木那里看到的这个功能、接着又分别在 whispererzwwoOoOo 那里看到了这个效果,有些心动,之后又在六维博客中再次看到了免插件实现读者墙的功能,于是惹起了我折腾 WordPress 的热血沸腾。

用插件实现的方法我就不多介绍了,我就爱玩代码:

一、函数部分:

将以下代码复制到 functions.php 中:

$identity="comment_author";
$passwordpost = " AND post_password=''";
$userexclude = " AND user_id='0' and comment_author != '万戈'";
$approved = " AND comment_approved='1'";
$shownumber = 24;
$counts = $wpdb->get_results("SELECT COUNT(" . $identity . ") 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 MONTH(comment_date)=MONTH(now()) and YEAR(comment_date)=YEAR(now())" .
$userexclude . $passwordpost . $approved . ") AS tempcmt GROUP BY " . $identity . " ORDER BY cnt DESC LIMIT " . $shownumber);

二、引用部分:

将以下代码复制到 sidebar.php 中:

<div class="widget">
<h3>本月水王</h3>
<ul class="ffox_most_active">
<?php if ( $counts ) : foreach ($counts as $count) :
echo  '<li>' . '<a href="'. $count->comment_author_url . '" title="' . $count->comment_author . ' ('. $count->cnt . '评论)">' .get_avatar($count->comment_author_email,32).'</a></li>';
endforeach; endif;
?>
</ul>
</div>

三、样式部分:

以下样式仅作参考。

.sidebar .widget .ffox_most_active li {
list-style:none;
float:left;
border:none;
padding-left:0;
width:41px;
background:none;
}
.sidebar .widget .ffox_most_active img.avatar {
width:32px;
height:32px;
}

就这样,免插件版的读者墙就实现了,效果可以见我的侧边栏(除了首页侧边栏)。其中代码和样式主要参考自 zwwoOoOo 的http://zww.me/archives/24671