我的读者墙,壮观的墙

之前用插件实现了读者墙,后来wordpress升级到3.0以后插件不兼容就关闭了。昨晚找到一篇文章提到不用插件来实现读者墙的方法。赶紧一试效果还真不错。并且经过我的简单改进,解决了同时加载很多小头像时页面缓慢的问题。下面来看看过程:

一、首先给大家看张我的读者墙的实际效果图吧:

我的读者墙

查看地址:http://tsov.net/readerswall/

二、新建一个页面的模板。创建模板的方法:
1、在当前使用的主题文件夹中创建一个新模板,将它命名为 readerswall.php。
2、接着在readerswall.php文件最上面加入下面的代码,用于在后台选择模板时的名称说明。

<?php
/*
Template Name: 读者墙模板
*/
?>

然后把 你主题的头部、底部等之类的代码拷贝到 readerswall.php 文件中(这一步可以先不动,等下看效果时少那部分再补上去你就明白为什么要把头部、底部这些公用的放进去了)。

三、把下面的代码放在你模板中:

<?php
//start 读者墙
$query=”SELECT COUNT(comment_ID) 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_author !=’simonsu’ AND comment_author_email != ‘simon@tsov.net’ AND post_password=” AND comment_approved=’1′ AND comment_type=”) AS tempcmt GROUP BY comment_author_email ORDER BY rand() LIMIT 400″;
$wall = $wpdb->get_results($query);
foreach ($wall as $comment){
if( $comment->comment_author_url )
$url = $comment->comment_author_url;
else $url=”#”;
$tmp = “<a href='”.$url.”‘ target=’_blank’ title='”.$comment->comment_author.” (“.$comment->cnt.”)’>”.get_avatar($comment->comment_author_email, 50).”“;
$output .= $tmp;
}
echo $output;
//end 读者墙
?>

四、登录后台,新建一个页面。标题、内容你就写”读者墙”,页面模板就选择你刚在创建的模板。这样子实现了。

五、一些细节、样式之类你继续调整下就OK了。若有不清楚的就留言给我吧。

提示,若再结合我之前的《wordpress中把用户的头像从gravatar中缓存到本地于提高访问速度》。那么这个页面速度也大大提高了。

相关日志

发表于:2010-09-08 13:36:04 at 13:36 分类:其它 9条评论 Tags:, ,

9 Comments»

  1. cain说道:

    请问博主:如何实现作者墙? 就是显示 一个文章多的作者 列表 但是 不要用文字 而是用 用户头像 加上相应的链接……谢谢

  2. Jessy说道:

    不错哦,呵呵

  3. 小杰博客说道:

    这个东西还是很不错的,呵呵。。。

  4. heizichen说道:

    好了,学习了,偷走资料,多谢。

  5. 洛之水说道:

    读者墙的,我是用了一个插件,刚换上的。

  6. xiulong说道:

    为什么 我总是收到很多关于你博客里面的邮件啊?

    • simon说道:

      你发表评论时就会给你的邮箱发一封。若我对你的评论有回复,也会再发一封。
      如果你评论了多篇,那是一个评论一封的。
      抽时间我会测试下发送是否有问题。
      同时,咨询一下,你觉得你发表、回复会同时通知到你邮箱的方式有什么意见?

发表评论

(必填)

(必填)您的电子邮箱不会被公开。

正在加载信息...

Archives