提醒:本文最后更新于 3436 天前,文中所描述的信息可能已发生改变,请仔细核实。

说实在的,一直想自己搞个评论系统。但因为时间关系,暂时先整出个管理系统来。
至于做这个轮子的原因,是因为Wordpress不知哪个版本开始,访问评论管理页面很慢,浏览器渲染完差不多7秒多。
访问慢的当时,已有1w+条评论(现在近2W)。我在Wordpress官方提交了issue,但一直无回复,后来我再评论一次,直接触发了规则被锁帖了。原因是无管理员回复,就继续评论,视为催促之类的,关闭之。
当时心里真是爆粗了,所以就萌生了自己做个评论系统。
但因为各种原因和懒癌发作,如今只完成了防机器人评论系统和本帖的评论信息管理系统。
说是系统其实只是装逼,但是确实快了很多。特别是MySQL在我精心调校下,速度特别快。
比起7秒+渲染,全AJAX评论管理系统,每次请求只要小于1秒的时间响应,带来非常快的体验。而且基本功能也都有,比如回复评论、编辑评论、删除评论、审核评论等。其中搜索能力及反应也很给力。
再来回顾下原生的Wordpress评论管理系统,在没有Object Cache的加成下,单页20条评论,需要40个查询,历时近4秒。

使用Memcached后,需要12个查询,历时近5.5秒。使用Memcached更慢的原因,在于非pipe,且一次有近30个查询。

为什么这个页面,查询这么多呢?
经过Debug后,其中有12个是正常查询;20个是对每条显示的评论做一次请求并缓存。还有8个,其中3条是对评论meta进行请求并缓存,id多会分成多条请求,我1w8+的评论分为3条请求;剩下5条是因为这20条评论涉及到5篇文章或页面,对post进行的请求并缓存。
我并不反对缓存,相反,热爱追求速度。但不要对没使用Object Cache的用户这么不友好,居然没有使用也要请求。而且因为没有使用Object Cache导致每次都要重新请求,我勒了个去,资源浪费啊。
使用Memcached,虽然在我这的执行时间变久了,但节省了查询,不用每次查一堆。而且对一些未优化过服务器,可能MySQL的效率并不会比Memcached快。加上我这个主题大量依赖Object Cache,所以,还是需要Memcached。
主题和后台每个页面都是秒开,就原生评论管理页面要7秒多,实在难以忍受。遂利用周末时间,搞定这个全新评论管理系统,秒开的感觉真好。
插件下载地址可在Github的Release中获得,Wordpress官方插件地址传送门。当然,也可以在Wordpress后台,插件中搜索WordPress Comments Manager进行安装、启用。
当然,也可以在本页直接下载。
更新历史:
2017-02-26发布1.6版本:
1.新增一个栏目,显示那些管理员尚未回复的评论
2.新增实验性功能,可以让公众搜索评论2017-02-11发布1.5.1版本:
修复Bug2017-01-22发布1.5版本:
1.优化查询
2.修复一些Bug2017-01-21发布1.4版本:
1.双击某一行,显示评论内容和回复文本框
2.编辑评论和回复评论,可以使用Ctrl+Enter快速发布
3.代码规范化,上线Wordpress插件2017-01-19发布1.3版本:
1.添加回复指定评论功能
2.审核POST到后台的数据2017-01-18发布1.2版本:
1.代码规范化、兼容化,使用内置JQuery
2.逻辑上阻止XSS注入可能,请求权限检测2017-01-16发布1.1版本:
1.给Site列添加超链接
2.双击某一行,完整显示评论内容2017-01-12发布1.0版本:
第一次公开发行版本
转载请注明转自: kn007的个人博客 的《全新WordPress评论管理系统》





























其实我觉得最好还是用原生的表格之类= =不然很不搭调
另外可以尝试下直接勾在原生评论管理上,替换掉
@liwanglin12: 哈。没办法,没时间做UI这些,只能用现成的框架。
替换原生,WP会要我命的。。。
已经用上了,真的好快!太感谢了
@FROYO: 新年好,客气了~
metadata 应该是用 `update_meta_cache()` 函数统一请求的吧,怎么会分开多条。

我这边看,除了 zh_CN.php 的暴力选项删除和我自己的主题插件之外,评论页面应该在 15 条查询之内的样子。
@斌果: 不知你有多少条评论和单页显示多少?

我这边用query debug,显示的结果是这样的
另外你是否有object cache,有的话,我是12条。
@kn007: 刚才循环插了两万条评论,评论列表没看到有查询数量的增加,我在本地,没对象缓存,渲染一个页面需要的所有数据都是现场查询出来的。

另外,即使把每页显示项目数改成 200,查询数量也是一条没有增加。
可能是你的某个插件里有设计不科学的东西。
@斌果: 问题是只有一个人可能是个例,我这周边可不止我一个有这个问题。我们这些卡的应该都有个共同点,就是wp_comment_meta表是空的。
你可以发下你评论页查询的请求列表么?
很遗憾,我之前也是这样想的,但把所有插件都删了也一样。
而且我的插件就个地图插件,微信机器人和这个插件。
@斌果: 如果可以麻烦提供下你的WP_CACHE的值。我现在发现一个问题就是WP_CACHE永远为true。
@kn007: `WP_CACHE ` 是 `FLASE`.

这是管理页面缓存的吧。
@斌果: 强制false后,只剩下25条查询了,20条评论。不过php页面加载还是要3秒,跟以前一样。
就是这样的:
http://p1.bqimg.com/567571/9a9ad984dd0029a0.png
有关的请求就这三条。
@斌果: 我手动把 commentmeta 表清空后也没问题。
@斌果: 。。。我说的单页面请求数,是完整的。等下我截个图给你吧。稍等
@斌果:
@斌果: 从id里面看,你貌似没多少评论。。。
给你看看我的,查询的密集。。呵呵。。7M多的图片
~地址已被删除~
@kn007: 我还插了挺多评论的:
http://i1.piimg.com/567571/65d72095920c6411.png
@斌果: 我来试下显示200条
@kn007: 我才打开图片,一个页面显示那么多评论干嘛,200 条很够了吧。
@斌果: 我一个页面就20条。。
@kn007: 那为什么会这样……
@斌果:
我也想知道
@斌果: 200条,压根无法忍

@斌果: 他要请求全部,我也没办法
我都不知道哪里有问题
@kn007: 这什么情况,我在线的环境用了对象缓存后台评论页总共才两条查询。
@斌果: .....
@斌果: 我用2017主题一样有问题。。
我不大明白,为什么WP_CACHE一直为true,可能我的重新安装下看看。。
@斌果: 你说的两条,是跟评论有关的两条是吧。。
@kn007: 这样:
http://p1.bpimg.com/567571/c3253c0e5bd70141.png
@斌果: 刚刚走开了下,我看下我的。我的要12条。。奇怪了
@斌果: 也是两条其实。。
https://kn007.net/filecup/uploads/bde227ce358cc473e521da0d75729ff7.png
zh_CN的查询还挺多的。。
@kn007: zh_CN 被我移除了。

@斌果: 找到原因了!
@斌果: 确实很奇怪。。。我刚刚新建了wordpress,把评论文章移过去,快得很。。。
莫非有什么升级遗留问题
还是主题有什么伤
但几个伙都不是一样主题,没什么道理啊。。
这样:
http://i1.piimg.com/567571/78876eb793d9e72a.png
@斌果: 评论等级提升飞快= =
@liwanglin12: 他以前也有经常来。。
@kn007: 原来如此= =
这个插件功能无敌了
@路易大叔: 算是功能齐全啦。谢谢
是我用的服务器太渣?加载到100条,后面的就加载不出来了。链接: https://pan.baidu.com/s/1hrPg4qo 密码: hx52
@老杨: 你是用最新版吗?之前版本有个bug。
@kn007: WordPress 官网下的,我知道是什么问题了,因为 wp_comments,但是我数据库用的不是 wp_ 前缀。
@老杨: 额,我用的是 $wpdb->comments ,什么前缀都可以啊。。。
@kn007: 有一处是:wp_comments,你可以搜搜代码,除非更新过了。
@老杨: 再次感谢!
@kn007: 我是刚从后台安装的,应该是 1.5 版本,改了就好了。
@老杨: 还真是,因为是后面为了优化SQL改了后,忘记改回来了。。我擦,谢谢
@老杨: 已更新wordpress插件。
@kn007: 真快!把这个(https://wordpress.org/plugins/dx-unanswered-comments/)也集成进去,再弄个非插件版就爽了,哈哈。
@老杨: 我刚才看了下,这个插件的代码效率略低,filtered达到50~100,一会改下,应能低于20。
因为插件本身不想存在设置去写数据库,所以我直接判断,父评论没有user表的评论就显示在unanswered上。
@老杨: 如果可以,你看下console有什么输出?还有network请求后的返回是怎么样的?
插件已试用,确实速度不错,两个很小很小的建议:
1、能否把后台这个位置放靠上一点,比如放在“仪表盘”正下方,方便点击管理,尤其是在手机上管理,省的往下拉了。
2、手机上管理界面可否调整自适应,毕竟屏幕太小了。。。。
@老虎: 第一个问题,貌似没找到钩子,你可以点击admin-bar的小房子图标,有个菜单可以跳转(如果你没禁用的话)。
第二个问题,属于基础框架问题,因为现在没时间,迟点我会废弃这个框架,纯css和js来做。
给你带来不好的体验,抱歉了。
@kn007: 搜了下搜到一个“WP Admin UI Customize”……不想再增加插件了,先这样吧~
应该有hook的。
或者放在“+新建”旁边也行……
不着急,等你下回更新一并改了好了。
谢了
@老虎: 我找空看下wp代码,印象中没哪个插件勾在仪表盘的子菜单里面。
我自己就是放在+新建那里。囧。
很不错的插件,支持
从 zww 博客前来围观
@荒野無燈: 欢迎,服务器出现点问题。
暂时不大稳定,不好意思。
而且邮件系统因为主机商原因,25被路由丢掉了。