`
dyllove98
  • 浏览: 1408962 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39173
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80241
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133368
社区版块
存档分类
最新评论

WordPress制作读者评论排行榜[无插件]

阅读更多

所谓的读者评论排行榜,就是展示在本博客评论最多的几个读者的头像(如果你还没有自己的个性头像或不知道怎么设置头像,请点此设置通用头像),按照读者的评论数进行排名,同时附上他们的博客网址,以示鼓励。这个通常也称为"读者墙",我将这个栏目命名为"30天内最活跃的读者"。

     其实这个东西之前已经有很多人分享过代码,目前发现了两个版本"免插件版侧边栏读者墙","免插件版側邊欄讀者牆",代码都大同小异,不过这帮人只是纯粹的分享代码,并没有道出其中的原委,对PHP不太熟悉的WordPress博主来说,只能照搬,还不能自己做修改。那我今天就来跟大家解释这其中的玄机,兴许会对你有所帮助。

读者评论排行榜

     以下是我自行修改后的代码,你可以直接用到你的WordPress主题中,如放在 single.php 、 sidebar.php 或 page.php中,并不是非得放在侧边栏,注意修改后用UTF-8编码保存,否则中文可能会乱码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<div id="hotfriends">
    <h3>30天内最活跃的读者</h3> 
    <ul>
<?php
/**
 * WordPress制作读者评论排行榜
 * @author: Ludou  
 * @Email : zhouzb889@gmail.com
 * @Blog  : http://www.ludou.org/
 */


    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 MONTH ) 
            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>' . '<a href="'. $c_url . '" title="' . $count->comment_author .' 发表 '. $count->cnt . ' 条评论" target="_blank">' . get_avatar($count->comment_author_email, 55, '', $count->comment_author . ' 发表 ' . $count->cnt . ' 条评论') . '</a></li>';
        }
        echo $mostactive;
    } 
?>
    <div style="clear:both;"></div>
    </ul>
</div> <!-- / hotfriends -->

     与本文开头提到的两个读者墙版本不同的是,我改写了SQL查询语句,使得SQL查询的时间大大缩短了。我做了个实验,相同的查询结果,前两个版本查询花费 0.0240 秒,而我的这个版本查询只花费了 0.0041 秒,时间效率可见一斑,因为我这个版本只查询一个数据库表wp_comments,没有使用嵌套查询,不考虑加密文章。如果你不在乎这点时间效率,使用哪个版本都一样。

     以上14 ~ 24行代码用于执行数据库查询的SQL,你可以自己设定条件来决定哪些读者可以进入你的评论排行榜单,下面讲讲如何更改这部分代码,自定义你的读者评论排行榜结果。

一、限定排行榜的时间范围

     第16行代码中 INTERVAL 1 MONTH 用于只统计最近一个月的评论,这个排行榜中只显示一个月内最活跃的读者,如果你想自定义时间范围,可参照下表对其进行更改:

代码 时间范围
INTERVAL 1 MONTH 最近一个月内
INTERVAL 3 YEAR 最近3年内
INTERVAL 2 WEEK 最近2周内
INTERVAL 6 DAY 最近6天内

如果你只想显示本月的排行榜,请将第16行代码改成:
WHERE MONTH(comment_date)=MONTH(NOW()) and year(comment_date)=year(now())

二、限定评论是否审核

     第17行代码 AND comment_approved = '1' 用于限定只统计已经通过审核的评论,如果你想统计未通过审核的评论,你可以将这一句代码删除。

三、排除某些读者

     第18行代码 AND comment_author_email != 'example@example.com' 用于排除不计入榜单的评论者,例如博主自己,将email地址改成博主的Email即可。这里我觉得使用评论者的Email作为限定条件比昵称更好,毕竟头像也是由Email决定的。如果你想排除多个评论者,可以多写几行类似的代码,Email不同即可,如:

1
2
AND comment_author_email != 'example1@example.com'
AND comment_author_email != 'exam2@exam.com'

四、是否包括不填URL的评论者

     第19行代码 AND comment_author_url != '' 排除没填URL的评论者,也就是那些没有网站的评论者将无法进入你的排行榜。

五、限定评论的类型

     第20行代码 AND comment_type = '' 限定了评论的类型,这行代码排除了 trackback 和 pingback,如果你还想统计这两种评论类型,你可以将此行代码删除。

六、是否包含博客的注册用户

     第21行代码 AND user_id = '0' 使排行榜中不包含博客的注册用户(包括博主),注册用户将无法进入你的排行榜。如果你的博客有大量的注册用户,或者你的博客只有博主这个注册用户,你可以将此行代码删除。

七、限定排行榜中的人数

     第24行代码中 LIMIT 15 用于限定排行榜中的人数,这里限制输出15位读者,你可以根据需要做一下更改。

八、限制头像的大小

     第31行代码中的 55 限定了输出的头像大小为 55 * 55,如果你不需要这么大的尺寸,你可以将这个数值改小点。

     最后提供CSS样式,也就是控制这个排行榜怎么显示的代码。复制到主题目录下的style.css中即可,你可以根据需要做些更改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#hotfriends {
    text-align:center;
}
#hotfriends ul {
    padding:7px;
}
#hotfriends ul li {
    float:left;
    list-style:none outside none;
    margin:6px;
    padding:0;
}
#hotfriends h3 {
    font-size:15px;
    margin:7px 7px 0;
}

分享到:
评论

相关推荐

    WordPress主题制作电子书.rar

    《WordPress主题制作电子书》是一本专为想要深入学习WordPress主题设计与开发的读者准备的教程。这本书籍详细地介绍了如何从零开始构建一个自定义的WordPress主题,涵盖了从HTML和CSS的基础到PHP编程和WordPress API...

    真正的WordPress帮助文档pdf版(中文)

    **WordPress 主_教程,,,,从零_始制作wordpress主_.pdf** 显然是一个逐步指导,教你如何从零开始创建WordPress网站的首页。它可能包括页面布局设计,定制化,导航菜单的创建,以及如何利用WordPress的可视化编辑...

    wordpress4.0 API手册

    手册会解释如何创建一个基本的WordPress插件,包括编写插件头信息,创建自定义功能,以及如何与其他插件或主题交互。读者还可以学习到如何使用WordPress的API来操作数据库,处理表单提交,以及实现定时任务(如cron ...

    构建自己最出色的WordPress主题 源代码

    了解这两者的基本语法和规则是制作任何网页设计的第一步,包括WordPress主题。 2. **JavaScript与jQuery**:JavaScript是网页动态交互的核心,而jQuery是一个JavaScript库,简化了DOM操作、事件处理和动画效果。在...

    Wordpress 主题模板制作教程电子书

    ### WordPress主题模板制作教程知识点详解 #### 一、引言 在互联网日益发达的今天,内容管理系统(Content Management System, CMS)成为了网站开发不可或缺的一部分。其中,WordPress作为最受欢迎的CMS之一,不仅...

    Professional_WordPress_Design_and_Development,_3rd_Edition

    本书的另一个重点是插件开发,通过这一章,读者可以学习如何开发出能够增强WordPress功能的插件。在主题开发方面,作者通过大量的实例和深入的技术解析,指导读者如何制作出既美观又功能强大的主题。 在多站点...

    Social media for wordpress

    标题中的“Social media for wordpress”指的是为WordPress平台提供的社交媒体工具或插件,旨在帮助用户更加便捷地在WordPress网站上集成和管理社交媒体功能。描述中的“Beginner's Guide”则意味着这是一本面向初学...

    snowball:制作沉浸式长篇文章的WordPress插件

    雪球(Snowball)是一款专为WordPress设计的插件,其主要目的是帮助用户轻松创建具有沉浸式体验的长篇文章。这款插件由Drexel大学的开发者团队开发,旨在提升网络文章的阅读质量和用户体验,特别是在新闻报道和深度...

    WordPress_主题模版制作教程

    ### WordPress主题模版制作教程知识点解析 #### 一、引言 在当今互联网时代,拥有一个个性化且功能强大的网站已成为许多企业和个人的需求。WordPress作为全球最受欢迎的网站构建平台之一,其丰富的主题模版使得定制...

    超详细WordPress_主题教程:从零开始制作

    ### 超详细WordPress主题教程:从零开始制作 #### 创建WordPress主题所需的工具和准备 在着手制作WordPress主题之前,确保准备好以下工具和环境: 1. **本地安装WordPress**:为了便于测试和开发,建议首先在本地...

    TimelineJS-Wordpress-Plugin:一个简单的短代码插件,可将时间轴添加到Wordpress

    《TimelineJS WordPress插件:构建动态时间轴的实用工具》 在数字媒体和内容创作领域,展示事件序列和历史进程的方式越来越多样化。其中,时间轴(Timeline)是一种直观且吸引人的展示方式,它能帮助读者更好地理解...

    Wordpress Sablog-X

    WordPress作为全球最受欢迎的内容管理系统之一,拥有丰富的插件和主题库,Sablog-X就是其中之一,它为用户提供了个性化的博客展示方式。 WordPress Sablog-X 主题的特点与优势: 1. **响应式设计**:Sablog-X 采用...

    Powerful Guide for Wordpress Theme Freshman

    标题直接表达了本指南的目标读者是刚接触Wordpress主题的新手,旨在提供一份强大的指导手册,帮助他们快速上手并深入理解Wordpress主题的设计与制作。 ### 描述:“Powerful Guide for Wordpress Theme Freshman” ...

    wordpress主题制作涉及到的基本模板及说明整理

    WordPress是目前全球最受欢迎的网站构建平台之一,它提供了丰富的主题和插件来帮助用户快速搭建网站。在自定义WordPress主题时,掌握一些基本模板的制作是必不可少的技能。本文将详细介绍在WordPress主题制作过程中...

    Packtpub.Wordpress.and.Flash.10x.Cookbook.Apr.2010.rar

    在实际操作部分,读者可能会学习如何使用Adobe Flash Professional或免费的开源替代品如Animate CC来设计和制作Flash元素,以及如何将这些元素转换为适合WordPress的格式。此外,书中的某些章节可能还会介绍如何调试...

    wp-random-post-thumbnails.2.5.0_random_noonkx7_wp_

    而“noonkx7”是开发者的标识,可能在WordPress插件目录中搜索到更多由同一位开发者制作的插件。最后,“wp”是WordPress的简称,明确了这个插件是专为WordPress平台设计的。 综上所述,wp-random-post-thumbnails...

    nrkbetaquiz:要求读者通过测验,然后才能对文章发表评论

    该插件是为Wordpress制作的,但是JavaScript组件也可以轻松地实现到其他CMS系统中。用法插件将下载的文件夹从nrkbetaquiz-master重命名为nrkbetaquiz 将其上传到您的插件文件夹在您的wordpress后端中启用插件在发布...

Global site tag (gtag.js) - Google Analytics