关于读者墙这个话题已经折腾过好几回了,像之前的WordPress插件:wp- reader-wall读者墙是利用插件实现在文章或者页面中添加读者墙的效果。后来为了能在侧边栏里也能显示,所以后来又折腾了WordPress 非插件读者墙。
由于前段时间把wordpress从2.9.2升级到了3.0,而wp-reader-wall插件也随之失效。咨询了插件作者也并有得到回复,而 且发现多数童鞋都有这样的问题,本想放弃使用此项功能的,不过昨天林西老九 等童鞋建议还是把这个墙筑起来比较好。正好看到快乐啦-Happyla的WordPress升级3.0后里正好涉及到这个问 题,二话没说,赶紧折腾。
折腾发现,首先要明确思路:
首先用页面版读者墙(和我以前的WordPress 非插件读者墙类似)代码建立一个读者墙模板,然后后台建立页面选择 commentswall模板即可。
虽然看上去很简单,但我之前都没有注意到在编辑文章或者页面的时候还可以选择不同的模板,一般都是默认的模板。明确思路后就简单了,因为我对模板代 码什么的不是很熟悉,所以直接利用的是主题自带的page.php也就是页面模板文件。打开page.php文件另存为commentswall.php 文件,在最前面加上下面的代码:
<?php |
/* |
Template Name: commentswall |
*/ |
?> |
表示要用调用commentswall模板,然后再在文件里面适当的位置添加非插件版读者墙的代码:
<!-- 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 MONTH ) AND user_id='0'
AND comment_author_email != '你自己的email地址' AND post_password='' AND
comment_approved='1' AND comment_type='') AS tempcmt GROUP BY
comment_author_email ORDER BY cnt DESC LIMIT 40"; |
$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."' title='".$comment->comment_author."
(".$comment->cnt.")'>".get_avatar($comment->comment_author_email, 40)."</a>"; |
$output .= $tmp; |
} |
$output = "<div
id='readerswall'><h2>Most Active Friends</h2>".$output."</div>"; |
echo $output ; |
?> |
<!-- end 读者墙 --> |
注意修改其中你的“email地址”以及你需要显示的头像大小及数目。先保存好此commentswall.php文件上传到你所用的主题目录下, 最后在后台新建一个页面,内容自定,最后在右侧选择使用的模板文件为commentswall即可。到此,wordpress免插件读者墙之页面版就完美 实现了,效果还是看我的给我留 言。
熟悉代码的童鞋还可以自己定义commentswall.php文件,不一定完全引用page.php里的内容,我这样做只是为了偷懒而已。如果还 有什么问题可以参考朵夫的《WordPress升级3.0后》以及 荒野无灯的《WordPress 免插件版读者墙》。
转载请注明:源自分文网»WordPress免插件读者墙之页面版
- 我 顶
-
- !觉得精彩就顶一下,顶的多了,文章将出现在更重要的位置上。


分享到和讯微博