kn007的个人博客
♥ You are here: Home > 软件与网络 > Wordpress > 全新WordPress评论管理系统

全新WordPress评论管理系统

by | 187 Comments

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


说实在的,一直想自己搞个评论系统。但因为时间关系,暂时先整出个管理系统来。

至于做这个轮子的原因,是因为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秒多,实在难以忍受。遂利用周末时间,搞定这个全新评论管理系统,秒开的感觉真好。

插件下载地址可在GithubRelease中获得,Wordpress官方插件地址传送门。当然,也可以在Wordpress后台,插件中搜索WordPress Comments Manager进行安装、启用。

当然,也可以在本页直接下载。

更新历史:
2017-02-26发布1.6版本:
1.新增一个栏目,显示那些管理员尚未回复的评论
2.新增实验性功能,可以让公众搜索评论

2017-02-11发布1.5.1版本:
修复Bug

2017-01-22发布1.5版本:
1.优化查询
2.修复一些Bug

2017-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版本:
第一次公开发行版本

下面放一些功能性展示的图片(1.3版本):

1.0版本:
















0.3版本:







Wordpress插件页面截图留念:

转载请注明转自:kn007的个人博客的《全新WordPress评论管理系统

donate
有所帮助?

Comments

187 Comments立即评论
  1. 回复

    过来你的站看看 我得有快两年没弄个人站了
    最近多说倒闭了 想起来之前的ajax 提交评论真是蛮麻烦弄的一件事
    你现在的主题 在手机上看都非常合适 简单的很到好处 :|

    1. MOD回复

      @Pete: 好久不见,我一直坚持用自己的,不用第三方,感觉挺好的,这个说白就是需要个第一次 :oops:
      主题总算扁平化+响应式,也算是完成一大心愿了。
      https://kn007.net/topics/new-theme-seven/

  2. 回复

    我现在直接调用Disqus了,过了折腾的年纪了。

    1. MOD回复

      @Roy: 用Disqus也挺好的,不用太麻烦,也有逼格。
      你已经没时间折腾了,主要。哈哈。

  3. 我现在wp的评论回复邮件发不出去怎么救……
    有人评论时的邮件正常,但是好像前/后台回复别人发不出去邮件啊
    :shock: :shock:

    1. MOD回复

      @HjtHjtHjt: 有人评论时的邮件提醒是wordpress自带的。
      评论回复提醒属于扩展功能,需要主题或插件支持。

    2. @kn007: 主题function.php里早已加…… :cry:

    3. MOD回复

      @HjtHjtHjt: 调试啊

    4. @kn007: 我要是调教的能好我还用在这里哭吗 :cry: :cry: :cry:

    5. MOD回复

      @HjtHjtHjt: 额,你是自建,还是smtp?

    6. @kn007: :| 没事我换了个主题后就好了
      看了你的关于界面发现
      胶己人?

    7. MOD回复

      @HjtHjtHjt: 那说明还是主题没启用到邮件通知的问题,或者内部有错误。

      是啊,鲁地块火?

    8. @kn007: ;-) 邮件通知是自己加的,可能是几年前的代码已经不兼容现在的WordPress了……
      潮阳该 :grin:

      换友链吗

    9. MOD回复

      @HjtHjtHjt: 我揭阳榕城的,不过乡里是古溪,离潮阳好近。

    10. @kn007: :smile: 害怕,现在在哪?

    11. MOD回复

      @HjtHjtHjt: 我现在在东莞~ :smile:

    12. @kn007: :| 在潮阳读书的我笑看

  4. memcached以后查询时间变长了有点疑惑 :o 对于memcached中缓存的记录读取应该要比db查询来得快吧,还是wordpress在查询的时候伴随着更新操作导致了锁的性能问题? :grin: 前面还猜测是wordpress读取memcached的时候是同步的,不过想了一下这种情况下memcached应该还是要比没有memcached快的啊 :???:

    1. @Xider: 好吧我好像没看清楚文章。wordpress在有memcached的情况下每次查询评论都会请求更新缓存吗,如果不是的话应该只会第一次查询的时候比较慢,第二次第三次就会快很多吧

    2. MOD回复

      @Xider: 嗯~

  5. 回复

    我很奇怪,一个国人开发的插件,里面居然全是英文? :o :o :o

    1. MOD回复

      @缙哥哥: 嗯,我也很好奇,为什么国人要买国外的服务器放网站。

    2. 回复

      @kn007: 可能部分人的内容受限吧,但至少我觉得应该支持中文吧?

    3. MOD回复

      @缙哥哥: 又不是看不懂,不是么。
      而且总共就几个单词,还不是句子,有问题么。。。

    4. 回复

      @kn007: 说实在话,也不怕你取笑。如果没有内容,我是真看不懂,便有评论内容,还有些也看不懂,我最不喜欢英语了…… :razz:

    5. 回复

      @kn007: 博主的网站不是也放在国外吗?
      我查了下您的域名指向:198.46.240.157 是美国加利福尼亚州洛杉矶 的IP段,是IDC机房使用的。
      运营商可能是 ColoCrossing,因为AS36352 是这家公司的。 :?:

    6. MOD回复

      @东晋: 你没看我是在反驳他么。

  6. LV1回复

    过了很久了,才又回来看看。有个需求,想把不少以前博客导入时错误的父子评论关系给理顺了,但自己修改数据库太累了,不知这个插件能否实现快速修复。

    1. MOD回复

      @老虎: 父子关系由谁提供?
      即便是插件也要正确的指引啊。。。

    2. LV1回复

      @kn007: 呃,我找到一款插件了,叫"Modify Comment Parent",虽然很简陋,不过还算好用,至少不用去数据库里一个个查找后更改了…… :razz:

      我上面说“快速修复”的意思是,自己是知道父子关系的,但目前是错乱的,最好能用拖拉直接把B评论拉到A评论下面成为父子关系(类似wp里制作菜单结构可以拖放)。

    3. MOD回复

      @老虎: 了解,恭喜解决问题 :idea:

    4. LV1回复

      @kn007: 秒回啊。 :cry:

    5. MOD回复

      @老虎: 缘分 :oops:

  7. 回复

    奇怪,为什么用memcache不用redis?现在都用redis的多吧?

    1. MOD回复

      @Bruce: ...问题是场景有需要用到Redis么。加上Redis在这些事情处理上也不比MC快,何必呢?

      选择适合的就好。

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif