wordpress评论模块:邮件回复评论

8月 22nd, 2010 5,084 留下评论 阅读评论

刚升级了wordpress 3.0.1,各种评论插件用了个遍,折磨了我整整2天,终于搞定,和大家分享下。

wordpress主流评论插件有:

  • wordpress-thread-comment

优点:前台支持Ajax提交评论;后台支持支持邮件回复

缺点:会覆盖前台原本的评论模块的CSS效果;后台邮件只对QQ邮箱起作用,对ZJU和Gmail的邮箱都发送失败(在wordpress 3.0.1中)

  • subscribe-to-comments

说明:支持邮件回复,订阅整篇博文的评论

缺点:要么选择不订阅邮件回复,要么就订阅这篇blog下的所有评论回复,和自己有关没关的都会发邮件;邮件对QQ邮箱和ZJU邮箱起作用,Gmail依旧失效

  • comment-reply-notification

说明:通过wp_mail()函数发送邮件

优点:不牵涉前台评论,只关注后台发邮件,自定义邮件格式

缺点:自我测试版本1.3与WP3.0.1不兼容,后台一个$_POST的参数引用错误导入邮件无法发送

  • wp-mail-smtp

说明:对wp_mail()的smtp功能扩展

优点:用任一公开smtp服务的邮件服务器(比如Gmail)可以发信,甚至可以在localhost环境下发,兼容所有邮箱

缺点:不感知WP中的评论回复,意思就是它只是增强了wp_mail的功能,却没有在适当的时候去调用它发送邮件

于是,comment-reply-notification(BUG修复后)加wp-mail-smtp就形成了一个很好的组合,采取smtp发邮件,另外一个好处是发件人就是真实的博主邮箱,这样方便与博友直接在邮箱中交流,博友可以直接回复邮件就行。

具体comment-reply-notification(版本1.3)的BUG地点在:115行的 function email($id)中的$_POST[‘comment_parent’],经Debug发现,$_POST并没有comment_parent字段,类似的是comment_ID字段,不知道是不是wordpress从2.9升到3.0的修改,于是修改一下就好啦。

我修改后的代码:

function email($id){
    $comment_parent_id = $_POST['comment_ID'];
    if((int) mysql_escape_string($comment_parent_id) === 0
        || (int) mysql_escape_string($_POST['comment_post_ID']) === 0){
        return $id;
    }
    if($this->options['mail_notify'] != 'none'){
        $this->mailer($id,mysql_escape_string($comment_parent_id),
            mysql_escape_string($_POST['comment_post_ID']));
    }
    return $id;
}

ps:comment-reply-notification最新版本1.4貌似已经解决了这个问题

Categories: Wordpress 标签:
  1. 12月 11th, 2011 23:57

    你用的那种邮件回复呀?

    • 文章最后不是说了么…2个插件的结合

  2. 5月 9th, 2011 02:53

    好文,前两天我就在折腾这个!!你回复我我会收到邮件提醒么?

  3. 3月 10th, 2011 12:34

    请问一个问题,我登录后在前台回复别人的评论的效果和后台回复的效果是否相同?不会导致自己给自己发了封自己给别人回复的邮件吧。

    • 可能会不相同,差别在前台回复可能不会发邮件,但如果能发的话回复给谁就发给谁的,不会发错的

      • 3月 10th, 2011 19:08

        谢了。
        我试了下,自己给自己回复都不会有任何提示,邪恶啊~

  4. 10月 21st, 2010 13:58

    貌似作者改过了

    • 因为插件更新了…

      • dylan | #6
        10月 23rd, 2010 21:11

        @stariy
        那它应该改好了么…… 但是我还没整出来……

  5. 10月 18th, 2010 14:41

    回复的头像怎么改啊!

  6. 10月 18th, 2010 14:40

    求罩啊!

  7. 10月 18th, 2010 13:57

    我的邮件功能太正常了, 以致于我去后台管理评论, 自动发送了N多邮件。 空间商说我发送垃圾邮件, 无语!

    • 这个…我用的是我的Gmail发的邮件,应该就和空间商没关系了

  8. 9月 13th, 2010 00:53

    写的很好,我回去试试。谢谢!

    • 希望能帮到你,有问题一起交流哈!

  9. 8月 31st, 2010 17:51

    为什么我还是收不到..邮件功能正常,不过评论回复插件只有thread comment有效..头痛死了…

    • 在前台回复我这儿也不行,不过我觉得现在用处不大;都仅仅是留个言,博主回复一下就结束了