Home > Customization > Icon > WordPress > WP Plugin > 插件推荐: Quick Comments

插件推荐: Quick Comments

December 9th, 2008 Leave a comment Go to 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 (新版本中已经集成该语言包)

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自 NeoEase
  1. December 17th, 2008 at 08:25 | #51

    test

  2. December 17th, 2008 at 18:03 | #52

    在你的Elegant Box这款主题中用貌似有点问题。

  3. momo
    December 18th, 2008 at 13:46 | #53

    这个插件能用在2.7的版本上吗?

  4. December 18th, 2008 at 14:04 | #54

    @momo
    当然可以了 :razz:

  5. December 19th, 2008 at 17:48 | #55

    收藏了 ~~~ 不错 纲要找一个留言插件

  6. December 21st, 2008 at 11:49 | #56

    elegant box 用户测试。。

  7. December 22nd, 2008 at 17:56 | #57

    非常喜欢你的inove主题,但有一个小小的建议,能否在以后的版本中添加:邮件订阅回复 功能。谢谢。

  8. December 22nd, 2008 at 23:44 | #58

    @wonsore
    这个不应该是主题的功能吧?用插件就可以简单的实现了! :razz:

  9. December 23rd, 2008 at 00:34 | #59

    wonsore :
    非常喜欢你的inove主题,但有一个小小的建议,能否在以后的版本中添加:邮件订阅回复 功能。谢谢。

    xiaorsz 正解!
    并不是所有人喜欢被人家邮件骚扰的.

  10. December 23rd, 2008 at 16:33 | #60

    @mg12
    因为我的网站偏重于交流,有的朋友问了问题以后期待我的回答,但没有邮件订阅的话,朋友们就不晓得我回答了没有,这个不太方便,当然我有点太苛求了。只是小小建议呵呵。

  11. December 23rd, 2008 at 18:46 | #61

    @wonsore
    用插件不就行了.... 囧.

  12. December 24th, 2008 at 18:22 | #62

    yinheli :
    @wonsore
    用插件不就行了.... 囧.

    装过几个,都和inove不兼容,无法使用,郁闷。

  13. December 24th, 2008 at 23:55 | #63

    @wonsore mail to comment 插件很不错,只需稍微改一下comment.js文件就可以很好的兼容!!推荐你用下!

  14. December 25th, 2008 at 13:14 | #64

    :razz: 你别的主题可以兼容这个插件吗?

  15. December 25th, 2008 at 17:04 | #65

    不知老大如何解决留言回复再编辑的问题?

  16. January 6th, 2009 at 22:44 | #66

    @wonsore
    这个的确很好用

  17. January 7th, 2009 at 19:38 | #67

    @chabo
    兼容! 推荐插件列表上有写呢.

  18. January 8th, 2009 at 21:40 | #68

    像本文这样的效果是用什么插件:
    -----------------
    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%';
    }
    --------------
    就是要做到代码有颜色的。
    呵呵

    谢谢啦。

  19. January 10th, 2009 at 17:11 | #69

    :razz: 恩,很不错哦,以后常来关注。很喜欢你的主题。请问有下载的不?

  20. January 10th, 2009 at 21:31 | #70

    @James
    WP-Syntax 插件是也!

  21. January 11th, 2009 at 12:24 | #71

    @mg12
    谢谢

  22. January 30th, 2009 at 14:45 | #72

    Quick Comments没有reply/quote的功能吧?mg12你是怎么怎么做到的呢?

  23. January 30th, 2009 at 15:56 | #73

    @disinfeqt
    那是我主题的功能.

  24. deriek
    January 30th, 2009 at 16:09 | #74

    mg12大大我的博客樓層怎麼都顯示 #1

  25. deriek
    January 30th, 2009 at 16:48 | #75

    因為有安裝quickcomments
    所以不管回覆幾次樓層都是#1
    只有刷新之後才回變回正常順序
    這是什麼原因呢???
    http://sbck.co.cc

  26. January 30th, 2009 at 16:59 | #76

    @deriek
    好像我没这样的问题, 下次我查看一下, 谢谢.
    (不过每个分页的第一个是 #1 是正常的, 我博客的主题经过特殊处理的)

  27. deriek
    January 30th, 2009 at 17:20 | #77

    有空到我那試試是什麼原因好嗎~~
    還有我有安裝圖片驗證
    如果是訪客第一次回覆的話沒問題
    但第二次就不行了~~因為圖片並沒有刷新阿~~怎麼會這樣呢

  28. January 31st, 2009 at 18:09 | #78

    用上了插件,非常不错。 :arrow:

  29. February 1st, 2009 at 21:19 | #79

    @deriek
    因为插件没刷新整个页面, 注定不能兼容的, 除非这个插件集成图片验证功能.

  30. February 24th, 2009 at 23:02 | #80

    请问一下,在我的网站里不能正常使用,出现一个空白页面显示下面的内容,是什么意思?应该怎么调整?已经启用了你推荐的插件了。网站地址:http://www.3cdma.com
    “2009年2月24日22:37 | #1
    回复 | 引用
    您的评论需要经过管理员审核通过后才会生效.

    再测试评论

    本文目前尚无任何 trackbacks 和 pingbacks.
    Comment count:2

    Output comment count:1

    Last comment only:TRUE”

  31. February 24th, 2009 at 23:43 | #81

    @mannings
    你想表达什么意思? 可以说清楚一些吗?

  32. February 25th, 2009 at 16:46 | #82

    就是插件在我网站上不太正常。在你这边是ajax切换,但在我网站上,会自动跳转到一个页面,提示成功,但是最后不会跳回来,但实际上评论已经成功了。是不是缺少了什么东西?
    麻烦你去这个页面试试发表评论看看:http://www.3cdma.com/article/sf-express.html

  33. March 14th, 2009 at 23:40 | #83

    我是wp2.7,主题是inove,已经安装了quick commnets,请问为什么我添加评论后不能直接显示而是要自己刷新才能看到评论呢

  34. April 7th, 2009 at 06:41 | #84

    How to make the submit comment button can submitted by pressing Ctrl+Enter?

    Awesome plugin, anyway! I like it...

  35. April 7th, 2009 at 08:03 | #85

    Help pls I've got an error like this :

    Warning: Invalid argument supplied for foreach() in /home2/gilangra/public_html/wp-content/plugins/quick-comments/notify-comment-author.php on line 107

    How to fix it, sir?

  36. April 10th, 2009 at 00:11 | #86

    Reply my two comments above, please...

  37. jgedean
    April 22nd, 2009 at 19:47 | #87

    為什麼我會出現

    訊息: 'quickCommentsL10n' 未被定義
    行: 12
    字元: 53
    程式碼: 0
    URI: quick-comments-0.7.0.min.js

  38. rwe
    April 24th, 2009 at 13:57 | #88

    werwer

  39. tang3631
    May 6th, 2009 at 12:58 | #89

    送出評論後出面沒有字元的對話框..然後也是要刷新畫面才會看到新的評論

  40. May 19th, 2009 at 00:39 | #90

    3q 很好,很强大!不需要修改主题

  41. June 23rd, 2009 at 19:19 | #91

    我试试看是不是真的只能在最后一页显示

  42. andy
    June 23rd, 2009 at 23:00 | #92

    你好,老师,您的留言板是用Quick Comments吗?
    真的很漂亮,我想做出这个效果,能指点一下,谢谢了!

Comment pages
1 2 802
  1. December 13th, 2008 at 10:25 | #1
  2. December 15th, 2008 at 15:09 | #2
  3. December 15th, 2008 at 23:51 | #3