插件推荐: Quick Comments
Quick Comments 是一个十分强大的 WordPress 评论插件, 它用到了 jQuery, 使用 AJAX 提交和更新评论, 还可以向评论者的邮箱或 Twitter 发送新评论通知. 选项灵活并且用户体验极佳.
该插件目前支持 classic, default, easyall, k2, sandbox 等多个著名的主题. 如果想要另它支持你的主题, 可能需要修改一下, 如 iNove 可以修改如下:
1. 打开 quick-comments.php, 并找到 149 行. (0.6.2 版)
2. 追加以下代码:
1 2 3 4 5 | elseif ( preg_match('/^inove/i', $template) ) { $this->options_default['form'] = 'form#commentform'; $this->options_default['list'] = 'ol#thecomments'; $this->options_default['editReturn'] = '#comment-%ID%'; } |
目前用 AJAX 提交评论的插件很多, 但这个插件的操作原理有些不一样. 评论提交后, 并不是在客户端直接生成新的评论, 也不是从服务器端返回格式化的最新评论. 而是在服务器端调用 comments_template() 方法生成整个评论内容, 然后进行提取并返回整个评论列表.
这样处理好坏参半, 却成了一个难以协调的矛盾, 且听我慢慢道来.
好处: 不用对新评论定义格式, 代码齐整, 外观好看, 使用方便.
坏处: 返回的文本信息很多, 当文本足够长的时候, 处理可能被中断掉, 客户端什么响应都没有, 用户体验坏极了. (当你的某篇文章有 500 条评论时, 这样的事情就可能发生了)
返回文本过长的问题其实可以解决, 怎么解决? 使用 WordPress 2.7 的评论分页功能. 也就是说, 每页的评论数是受限的, 所以可以防止返回文本过长问题. 如果你需要这样的效果, 也需要对插件稍微修改一下:
找到 comments_template(); 并修改为以下代码:
1 2 3 4 5 6 7 | if (function_exists('wp_list_comments')) { global $wp_query; $wp_query = &query_posts($query); comments_template('', true); } else { comments_template(); } |
但这样修改还是有缺陷的, 也就是前面说的难以协调的矛盾. 如某文章有 5 页评论, 如果你在第 5 页进行评论, 那一切安然, 但如果你到 1~4 页进行评论, 将得不到响应, 你得跑到第 5 页才能见到你的评论. 如果想知道是不是, 不妨在我的博客上找篇文章试试.
该插件选项细化程度很高, 很灵活, 但我觉得作者在选项处理方面做得有点过了, 刚开始使用有点乱, 不过这并不影响它成为一个强大而好用插件. 我刚刚为这个插件做个简体中文语言文件, 明天 review 一下再发给作者吧.
最后, 感谢研发该插件的日本友人をかもとさん, 下载地址如下:
http://wppluginsj.sourceforge.jp/quick-comments/
2008/12/12 补充内容:
1. 这个插件只会处理日志文章的评论提交, 如果你想在页面或者其他支持评论的页面也使用, 那要简单修改一下. 在 quick-comments.php 文件中查找 is_single() && !$this->isKtai(), 一共有三处, 全部改为 (is_single() || is_page() || $withcomments) && !$this->isKtai()
2. 如文中所说, 该插件有个缺陷, 不能跨页显示提交的评论. 如果你的文章为零, 而你在评论列表内为此创建一个提示, 那么第一篇评论也不会被显示出来. 为什么呢? 因为插件在 JavaScript 中要对服务器的应答进行检测, 如果更新条目不改变, 那么就只插入提交的评论了 (但这里它抓不到最新提交的评论). 也就是说, 只要我们不要 check 就可以了.
在 quick-comments-0.6.1.js 中你可以找到 if (jQuery('input#update', form).size() > 0 ) 这样的判断条件, 当更新条目大于零时就更新, 否则进行插入处理. 你只要改一下这个逻辑, 让他在任何时刻都更新就 OK 了. 最后你还得对应着修改 quick-comments-0.6.1.min.js 这个压缩包文件 (其实只要修改这个就可以了). 如果你不懂程序, 或者比较懒, 那么你直接下载我的替换上去也可以. 下载地址 (请下载最新版本的插件)
2008/12/15 补充内容:
中文语言包: quick-comments-zh_CN.zip (新版本中已经集成该语言包)

@a18ccms
That's because your website URL is different from actual URL.
这个可以在后台的 管理 常规里面改,
我的真实地址是whisperer.name,但是原来我让它改成www.whisperer.name,这样它就认为不是一个地址。
把这两个地址改成一样就可以了。
老大也不帮忙。真郁闷。55555555555
你这个留言插件不错,能告诉我吗?
jQuery很强很大
看下
测试下看看。。
thanks much
试一下~~~~~~~~~
试一下
mg12能不能介绍下设置呢?
mg12, do you have a tutorial for the latest inove? thanks
Sorry, my mistake, it`s working.
P.S.: 10x 4 great theme (inove).
我想问下 mg12 网站上外部链接在新窗口打开是手动加代码还是使用了什么插件呢?
@园子
使用了JavaScript脚本,哈哈
@bolo
能说下具体的实现方法吗?
在网上找了
都不太完美~
试下效果. 呵呵
Why it can not work with Elegant-box?
测试下异步评论
我也测试一下吧。
测试一下
我现在想找这插件,找的好辛苦。
测试一下
刚装上去但是留言刷新不来
来做个留言的测试!
看到超人了~!嘎嘎!
@星网
看到星星了~!嘎嘎!
@无念
o(╯□╰)o
来测试的。··
很受用,准备加上这个评论插件
插件确实不错,但是最新的0.7.2版本有个bug:当settings-discussion中勾选Enable threaded (nested) comments 5 levels deep选项(回复评论嵌套)后,在reply某个评论之后,嵌套的表单一直停留在loading的界面,但评论已经发送成功。我不懂日语,愿您能帮忙联系作者修复此bug,谢谢,期待您的回复。
谢谢推荐,很欣赏你制作的主题。
装上了,不过显示不太好,不知道是不是得改代码...
其实一直在找这个插件,谢谢了
好像的確不錯,不過加載時間有點長。