所谓的读者评论排行榜,就是展示在本博客评论最多的几个读者的头像(如果你还没有自己的个性头像或不知道怎么设置头像,请点此设置通用头像),按照读者的评论数进行排名,同时附上他们的博客网址,以示鼓励。这个通常也称为"读者墙",我将这个栏目命名为"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主题制作电子书》是一本专为想要深入学习WordPress主题设计与开发的读者准备的教程。这本书籍详细地介绍了如何从零开始构建一个自定义的WordPress主题,涵盖了从HTML和CSS的基础到PHP编程和WordPress API...
**WordPress 主_教程,,,,从零_始制作wordpress主_.pdf** 显然是一个逐步指导,教你如何从零开始创建WordPress网站的首页。它可能包括页面布局设计,定制化,导航菜单的创建,以及如何利用WordPress的可视化编辑...
手册会解释如何创建一个基本的WordPress插件,包括编写插件头信息,创建自定义功能,以及如何与其他插件或主题交互。读者还可以学习到如何使用WordPress的API来操作数据库,处理表单提交,以及实现定时任务(如cron ...
了解这两者的基本语法和规则是制作任何网页设计的第一步,包括WordPress主题。 2. **JavaScript与jQuery**:JavaScript是网页动态交互的核心,而jQuery是一个JavaScript库,简化了DOM操作、事件处理和动画效果。在...
### WordPress主题模板制作教程知识点详解 #### 一、引言 在互联网日益发达的今天,内容管理系统(Content Management System, CMS)成为了网站开发不可或缺的一部分。其中,WordPress作为最受欢迎的CMS之一,不仅...
本书的另一个重点是插件开发,通过这一章,读者可以学习如何开发出能够增强WordPress功能的插件。在主题开发方面,作者通过大量的实例和深入的技术解析,指导读者如何制作出既美观又功能强大的主题。 在多站点...
标题中的“Social media for wordpress”指的是为WordPress平台提供的社交媒体工具或插件,旨在帮助用户更加便捷地在WordPress网站上集成和管理社交媒体功能。描述中的“Beginner's Guide”则意味着这是一本面向初学...
雪球(Snowball)是一款专为WordPress设计的插件,其主要目的是帮助用户轻松创建具有沉浸式体验的长篇文章。这款插件由Drexel大学的开发者团队开发,旨在提升网络文章的阅读质量和用户体验,特别是在新闻报道和深度...
### WordPress主题模版制作教程知识点解析 #### 一、引言 在当今互联网时代,拥有一个个性化且功能强大的网站已成为许多企业和个人的需求。WordPress作为全球最受欢迎的网站构建平台之一,其丰富的主题模版使得定制...
### 超详细WordPress主题教程:从零开始制作 #### 创建WordPress主题所需的工具和准备 在着手制作WordPress主题之前,确保准备好以下工具和环境: 1. **本地安装WordPress**:为了便于测试和开发,建议首先在本地...
《TimelineJS WordPress插件:构建动态时间轴的实用工具》 在数字媒体和内容创作领域,展示事件序列和历史进程的方式越来越多样化。其中,时间轴(Timeline)是一种直观且吸引人的展示方式,它能帮助读者更好地理解...
WordPress作为全球最受欢迎的内容管理系统之一,拥有丰富的插件和主题库,Sablog-X就是其中之一,它为用户提供了个性化的博客展示方式。 WordPress Sablog-X 主题的特点与优势: 1. **响应式设计**:Sablog-X 采用...
标题直接表达了本指南的目标读者是刚接触Wordpress主题的新手,旨在提供一份强大的指导手册,帮助他们快速上手并深入理解Wordpress主题的设计与制作。 ### 描述:“Powerful Guide for Wordpress Theme Freshman” ...
WordPress是目前全球最受欢迎的网站构建平台之一,它提供了丰富的主题和插件来帮助用户快速搭建网站。在自定义WordPress主题时,掌握一些基本模板的制作是必不可少的技能。本文将详细介绍在WordPress主题制作过程中...
在实际操作部分,读者可能会学习如何使用Adobe Flash Professional或免费的开源替代品如Animate CC来设计和制作Flash元素,以及如何将这些元素转换为适合WordPress的格式。此外,书中的某些章节可能还会介绍如何调试...
而“noonkx7”是开发者的标识,可能在WordPress插件目录中搜索到更多由同一位开发者制作的插件。最后,“wp”是WordPress的简称,明确了这个插件是专为WordPress平台设计的。 综上所述,wp-random-post-thumbnails...
该插件是为Wordpress制作的,但是JavaScript组件也可以轻松地实现到其他CMS系统中。用法插件将下载的文件夹从nrkbetaquiz-master重命名为nrkbetaquiz 将其上传到您的插件文件夹在您的wordpress后端中启用插件在发布...