乌徒帮技术范WordPressWordPress开发 › wordpress统计最活跃读者:为博客添加活跃读者挂件

wordpress统计最活跃读者:为博客添加活跃读者挂件

分类:WordPress开发

为博客添加一块读者墙有这样两个好处:1、增加博客内对读者评论的肯定,希望读者积极参与互动;2、帮助新的读者找到和自己兴趣相投的其他读者。读者墙即按照读者的活跃程度,列出他们的头像,由于紧凑的排列,就像一堵墙一样。

准备阅读:
1、《wordpress小工具制作前台后台全解析
2、《为wordpress打造带选项卡的边侧栏小工具挂件
3、《WordPress制作读者评论排行榜[无插件]

如果你是主题制作的新手,请阅读前面全部的文章,如果你已经比较熟练,阅读最后一篇即可。倘若不幸的是你了一个主题制作的门外汉,请直接黏贴下面的代码到你的主题目录下的functions.php文件中。

?<?php
/**
?* wordpress读者墙挂件
?* @author: 否子戈
?* @Email : frustigor@163.com
?* @Blog? : http://www.utubon.com
?* @URL : http://www.utubon.com/377/
?*/

class commentsWidget extends WP_Widget
{
?? ?function commentsWidget(){
?? ??? ?$widget_ops = array('classname'=>'posts-focus','description'=>'读者墙挂件');
?? ??? ?$control_ops = array('width'=>250,'height'=>300);
?? ??? ?$this->WP_Widget(false,'活跃读者',$widget_ops,$control_ops);
?? ?}
?? ?function widget($args,$instance){
?>
<div>
<div>活跃读者</div>
<div>
<ul style="display:none;">
<?php
global $wpdb;
$counts = $wpdb->get_results("
?? ?SELECT COUNT(comment_author) AS cnt, comment_author, comment_author_url, comment_author_email
?? ?FROM {$wpdb->prefix}comments
?? ?WHERE comment_date > date_sub( NOW(), INTERVAL 1 YEAR ) 
?? ??? ?AND comment_approved = '1' 
?? ??? ?AND comment_author_email != 'example@example.com'
?? ??? ?AND comment_author_url != ''
?? ??? ?AND comment_type = ''
?? ??? ?AND user_id = '0'
?? ?GROUP BY comment_author_email
?? ?ORDER BY cnt DESC
?? ?LIMIT 15");

$mostactive = '';
if($counts){
?? ?foreach($counts as $count){
?? ??? ?$c_url = $count->comment_author_url;
?? ??? ?$mostactive .= '<li style="float:left;margin:1px 2px;list-style:none;">'.'<a href="'.$c_url.'" title="'.$count->comment_author.' 发表 '.$count->cnt.' 条评论" target="_blank" rel="external nofollow">'.get_avatar($count->comment_author_email,55,'',$count->comment_author.' 发表 '.$count->cnt.' 条评论').'</a></li>';
?? ?}
?? ?echo $mostactive;
?? ?}
?>
??? <div style="clear:both;"></div>
</ul>
</div>
</div>
<?php
?? ?}
}//小工具类结束
function commentsWidgetInit(){
?? ?register_widget('commentsWidget');
}
add_action('widgets_init','commentsWidgetInit')

露兜在他的文章中已经将各个要素讲的很清楚,本文就不再赘述了。

填写个人信息,赶快回复吧!