用代码实现wordpress”读者墙”(完美修改版)
前文写到《给博客添加一个”读者墙”,插件wp-reader-wall》,文中也提到了该插件的一些缺点。本着WP fans一贯的折腾的精神,严重浪漫又开始研究起用代码实现读者墙。
一直以来都很喜欢Junan的读者墙,和他聊了一下,得知他的读者墙是代码实现的。于是把代码要来了。使用后,发现有一个小小的问题:点击墙上的头像,会在本页内跳转到别人的博客,这样会造成本博客的“跳出”。于是,我修改了一下,修改后,点击头像,在新页面(或标签)打开别人的博客。这样的话,这段代码就比较完美了。
手把手使用说明:
【1】首先把你现在所用的主题的目录下的page.php这个文件复制一份到你的硬盘上。改名为Reader.php (其他名字也可以,但中文不可以)。
【2】用Notepad++、UltraEdit、EditPlus等文本编辑器打开Reader.php,在最前面加上:
1 2 3 4 5 | <?php /* Template Name:Wall */ ?> |
【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】完成了。
从你的首页里找到这个新建的页面,点开看看吧。比如:严重浪漫的读者墙。
写的够详细了,方便菜鸟学习。
祝大家愉快。
本文欢迎转载,转载请注明原作者、原链接。
@仁易轩
别那么客气,互相交流啊~~~
按照博主的教程仁易轩读者墙做好了。仁易轩分享经验衷心感谢博主的教程。
@老Z
没问题啊,我这里就是控制的数量:200个。
为什么数量限制不起作用啊?
严重支持!
测试成功
谢谢
给你送IP来了
请问啥是读者墙??
学习了
好哪!!!!!!!
我去瞧瞧你的读者墙去
学习了。
依然排名第二
我常来,你不更新就不对了!!!
我的博客也有读者墙,感觉很好!!
很棒,欢迎回访啊
@jamiexin
已经回访,常联系,朋友
@szoOrz
欢迎美女,已经回访。
后排占座。过几天可能效仿一下
用wp 就是用来折腾的。
技术文~
精彩文章给力雄厚,辛苦了博主我先拿走了以后常来支持
我也来支持下 呵呵
@5169.info
你说的是< ?php the_content(); ?>吧?
这不是乱码,是一个PHP语句。
第二步的那串“乱码”是什么?
前排留言,我的vps性能太差了,一天卡好几次