最近集思博客又有了小变动,主要是丰富了博客的互动方面,可能朋友们没有发现吧,我悄悄地对集思博客的读者墙做了小手术,现在的读者墙上的内容丰富多了。上图!
可以看到,除了上次的读者墙插件两排头像之外,下面又多了“最新评论”、“评论者排行”、“文章评论排行”三个排行榜,比以前读者墙的内容丰富多了,现在的读者墙能够更清晰地反映集思博客的读者们对我的博客访问情况。
集思博客实现这个效果得感谢WordPress.la,因为我在他那里看到了它发布的教程,还转载了它的内容。
三个排行榜的实现无非就是新建一个单页面模板。
复制你当前模板中的page.php文件,从新命名为什么可以自己定,我这里是命名为:giisi-comment-central.php。
我编辑工具打开新文档giisi-comment-central.php,把下面的代码复制到文档的最上方:
<?php /* Template Name: Comments Central */ ?>
保存下这个文档。
好了,一个但页面的模板就做好了。下面就可以实现各个排行榜了。
最新评论
把下面的代码复制到新建的giisi-comment-central.php文档中:
<h2>Recent Comments</h2>
<ul>
<?php
$max = 7; // number item to get global $wpdb;
$sql = "SELECT c.*, p.post_title FROM
$wpdb->comments c INNER JOIN
$wpdb->posts p ON (c.comment_post_id=p.ID) WHERE comment_approved = '1'
AND comment_type not in ('trackback','pingback') ORDER BY comment_date DESC LIMIT $max";
$results = $wpdb->get_results($sql);
$template = '%g <a href="%au">%an</a> on <a href="%pu#comment-%cid">%pt</a>';
$echoed = 0; foreach ($results as $row)
{ $tags = array('%ct','%cd','%g','%pt','%pu','%au','%an','%cid');
$replacements = array($row->comment_title,
$row->comment_date,get_avatar($row->comment_author_email,'32'),
$row->post_title, get_permalink($row->comment_post_ID),
$row->comment_author_url,
$row->comment_author,
$row->comment_ID); echo '<li>' . str_replace($tags,$replacements,$template) . '</li>'; $echoed = 1;
}
if ($echoed==0)
echo '<li>No comment found.</li>';
?>
</ul>
当然这样是没有样式的,因为,我们还没有添加相关的样式进入我们的外链样式表:
#cc-recent-comments li { width: 100%; float: left; list-style-type: none; }
#cc-recent-comments li img { float: left; margin-top: -5px; }
评论排行
把下面的代码复制到giisi-comment-central.php文档中:
<h2>Top Commenters</h2>
<ul>
<?php $sql = "SELECT comment_author, comment_author_url, comment_author_email, count(comment_ID)
as comment_count FROM $wpdb->comments WHERE comment_approved = '1'
AND comment_type not in ('trackback','pingback') GROUP BY comment_author, comment_author_url,
comment_author_email ORDER BY comment_count DESC LIMIT $max";
$results = $wpdb->get_results($sql);
$template = '<a href="%au">%g %an</a> (%c comments)';
$echoed = 0; foreach ($results as $row) { $tags = array('%g','%au','%an','%c');
$replacements = array(get_avatar($row->comment_author_email,'32'),
$row->comment_author_url,
$row->comment_author,
$row->comment_count); echo '<li>' . str_replace($tags,$replacements,$template) . '</li>';
$echoed = 1; } if ($echoed==0) echo '<li>No commenter found.</li>'; ?> </ul>
当然,还有相关的CSS:
#cc-top-commenters li { width: 100%; float: left; list-style-type: none; }
#cc-top-commenters li img { float: left; margin-top: -5px; }
文章评论排行
<h2>Most Commented Posts</h2>
<ul>
$sql = "SELECT p.*, c.comment_count FROM
$wpdb->posts p INNER JOIN (SELECT comment_post_id, count(comment_ID) as comment_count
from $wpdb->comments
WHERE comment_approved='1' GROUP BY comment_post_id) c ON (c.comment_post_id=p.ID)
ORDER BY c.comment_count DESC LIMIT $max";
$results = $wpdb->get_results($sql);
$template = '<a href="%pu">%pt</a> (%c comments)';
$echoed = 0; foreach ($results as $row) {
$tags = array('%pd','%pt','%pu','%c');
$replacements = array($row->post_date,$row->post_title,get_permalink($row->ID),
$row->comment_count); echo '<li>' . str_replace($tags,$replacements,$template) . '</li>';
$echoed = 1; } if ($echoed==0)
echo '<li>No commenter found.</li>';
?>
</ul>
OK,三个排行榜都添加了,就去后台新建一个页面选取相应的模板,在编辑区域按照WP读者墙介绍的方法,把读者墙插件的调用代码填写进去(前提是要有读者墙插件,没有就什么都不用填)。
提交了之后,就可以看效果了,集思博客上的读者墙效果大家可以看看传送门。上次有人说找不到读者墙的地址,说我的链接太隐蔽,所以传送门就直接摆出来了。
原创文章转载请注明出处,转载自:[集思博客]:http://www.giisi.com
本文链接:[这里有你的名字吗?]:http://www.giisi.com/design/wp-reader-wall-2.html
集思博客订阅地址:[http://rss.giisi.com]




真的很好啊,我也要好好学习一下,试试能不能做一个这样的墙,很拽@!
这个是一定要收藏的。
这个sql语句让我颇受启发,收藏!
@踏雪残情, 同意,收藏之。好博客,能否添加個鏈接啊兄弟。
@豬頭六, 呵呵,你的博客也是很不错的,我订阅了。
@集思, 谢谢,我已经给你加上了友情链接,对了,你的评论邮件回复通知是用的插件嘛? 我也准备整一下。自己写代码搞不定。
@豬頭六, 是插件啊,本来LINUX主机是不用插件也能回复通知的,可是以前装上了,后来也没有卸载他。我们不能弄个首页链接吗?
@集思, 首頁有你鏈接啊,側邊欄。每一頁都有。呵呵:)因為我友情鏈接現在比較少 所以沒有單獨在底部建個友情鏈接的板塊。
@豬頭六, 我在我这给你加上了~~看了好久,还真没有在你的首页看到。除了首页别的页面都看到了。哦,你的博客是不是设置了首页缓存啊哈!!