用代码实现wordpress”读者墙”(完美修改版)

前文写到《给博客添加一个”读者墙”,插件wp-reader-wall》,文中也提到了该插件的一些缺点。本着WP fans一贯的折腾的精神,严重浪漫又开始研究起用代码实现读者墙。

一直以来都很喜欢Junan的读者墙,和他聊了一下,得知他的读者墙是代码实现的。于是把代码要来了。使用后,发现有一个小小的问题:点击墙上的头像,会在本页内跳转到别人的博客,这样会造成本博客的“跳出”。于是,我修改了一下,修改后,点击头像,在新页面(或标签)打开别人的博客。这样的话,这段代码就比较完美了。

手把手使用说明:

【1】首先把你现在所用的主题的目录下的page.php这个文件复制一份到你的硬盘上。改名为Reader.php (其他名字也可以,但中文不可以)。

【2】用Notepad++、UltraEdit、EditPlus等文本编辑器打开Reader.php,在最前面加上:

f5db7a85c686e6e3188372fffbbf6c91000

【3】找到<?php the_content(); ?>,在他的前面加上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- start 读者墙 -->
<?php
$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_date > date_sub( NOW(), INTERVAL 1 YEAR) AND user_id='0' AND comment_author_email != 'XXXX@163.com' AND comment_author_email != 'XXXX@gmail.com' AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT 180";
$wall = $wpdb->get_results($query);
foreach ($wall as $comment)
{
if( $comment->comment_author_url )
$url = $comment->comment_author_url;
else $url="#";
$tmp = "<a rel='external nofollow' href='".$url."' target='_blank' title='".$comment->comment_author." (".$comment->cnt.")'>".get_avatar($comment->comment_author_email, 40)."</a>";
$output .= $tmp;
}
$output = "<div id='readerswall'><h2>Readers Wall</h2>".$output."</div>";
echo $output ;
?>
<!-- end 读者墙 -->

里面几个数值,你可以根据自己需要修改:
[1 YEAR]   是统计的时间跨度。1 MONTH 是一个月,1 WEEK 是一周,1 SEASON是一季度。
[XXXX@163.com]   是排除掉博主自己的评论。
[180]   是显示多少个头像。
[40]    是头像尺寸。

修改完后,保存。

【4】把Reader.php上传到你现在用的主题的目录下。

【5】wordpress后台 → 页面 → 添加新页面。
标题随便起一个名字,可以是中文。建议起一个英文的别名,比如“ReadersWall”。
右边的“模版”,点开下拉菜单,选择“Wall” (就是刚刚上传的那个模版啦)。
发布页面。

【6】完成了。
从你的首页里找到这个新建的页面,点开看看吧。比如:严重浪漫的读者墙

写的够详细了,方便菜鸟学习。
祝大家愉快。

本文欢迎转载,转载请注明原作者、原链接。



6,747 次阅读 | 发表评论 | Trackback
2011年7月7日 | 归档于 WordPress
  1. 5169.info
    2011年7月7日 08:12 | #1

    前排留言,我的vps性能太差了,一天卡好几次

  2. 5169.info
    2011年7月7日 08:15 | #2

    第二步的那串“乱码”是什么?

  3. 严重浪漫
    2011年7月7日 13:27 | #3

    @5169.info
    你说的是< ?php the_content(); ?>吧?
    这不是乱码,是一个PHP语句。

  4. 2011年7月7日 15:22 | #4

    :mrgreen: 支持一个~~ :-P

  5. 2011年7月7日 15:39 | #5

    我也来支持下 呵呵

  6. 2011年7月7日 17:59 | #6

    精彩文章给力雄厚,辛苦了博主我先拿走了以后常来支持

  7. 2011年7月8日 10:37 | #7

    技术文~

  8. 2011年7月8日 11:24 | #8

    用wp 就是用来折腾的。

  9. 2011年7月8日 13:00 | #9

    后排占座。过几天可能效仿一下

  10. 严重浪漫
    2011年7月8日 23:08 | #10

    @szoOrz
    欢迎美女,已经回访。

  11. 严重浪漫
    2011年7月8日 23:09 | #11

    @jamiexin
    已经回访,常联系,朋友

  12. 2011年7月9日 10:36 | #12

    很棒,欢迎回访啊

  13. 2011年7月9日 13:54 | #13

    我的博客也有读者墙,感觉很好!!

  14. 2011年7月9日 21:11 | #14

    我常来,你不更新就不对了!!!

  15. 2011年7月9日 21:19 | #15

    依然排名第二

  16. 2011年7月9日 23:35 | #16

    学习了。 :lol:

  17. 2011年7月10日 04:22 | #17

    我去瞧瞧你的读者墙去

  18. 2011年7月10日 12:29 | #18

    好哪!!!!!!!

  19. 2011年7月14日 16:28 | #19

    学习了

  20. 2011年7月17日 23:01 | #20

    请问啥是读者墙?? :(

  21. 2011年9月4日 19:20 | #21

    测试成功
    谢谢
    给你送IP来了

  22. 2011年10月25日 01:52 | #22

    严重支持!

  23. 2011年11月8日 16:14 | #23

    为什么数量限制不起作用啊?

  24. 严重浪漫
    2011年11月10日 04:43 | #24

    @老Z
    没问题啊,我这里就是控制的数量:200个。

  25. 2012年7月7日 13:48 | #25

    按照博主的教程仁易轩读者墙做好了。仁易轩分享经验衷心感谢博主的教程。

  26. 严重浪漫
    2012年7月7日 14:25 | #26

    @仁易轩
    别那么客气,互相交流啊~~~

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">
:lol: :( 8-O :oops: 8) :?: :!: :evil: more »