wordpress评论模块:邮件回复评论
刚升级了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貌似已经解决了这个问题
你用的那种邮件回复呀?
文章最后不是说了么…2个插件的结合
好文,前两天我就在折腾这个!!你回复我我会收到邮件提醒么?
请问一个问题,我登录后在前台回复别人的评论的效果和后台回复的效果是否相同?不会导致自己给自己发了封自己给别人回复的邮件吧。
可能会不相同,差别在前台回复可能不会发邮件,但如果能发的话回复给谁就发给谁的,不会发错的
谢了。
我试了下,自己给自己回复都不会有任何提示,邪恶啊~
貌似作者改过了
因为插件更新了…
@stariy
那它应该改好了么…… 但是我还没整出来……
回复的头像怎么改啊!
gravatar
@ stariy
Gravatar访问好慢 整了半天也没整明白
求罩啊!
我的邮件功能太正常了, 以致于我去后台管理评论, 自动发送了N多邮件。 空间商说我发送垃圾邮件, 无语!
这个…我用的是我的Gmail发的邮件,应该就和空间商没关系了
写的很好,我回去试试。谢谢!
希望能帮到你,有问题一起交流哈!
为什么我还是收不到..邮件功能正常,不过评论回复插件只有thread comment有效..头痛死了…
在前台回复我这儿也不行,不过我觉得现在用处不大;都仅仅是留个言,博主回复一下就结束了