2011年10月24日 121条评论

整理: WordPress 评论回复邮件通知代码

这是自用的评论回复邮件通知代码,源码来自 WillinQiqiboy,有兴趣者可以去这两位作者博客看看。

这版本的评论回复通知是支持嵌套和@用户方式的。

用法很简单,把下面的代码扔到主题的 functions.php 里面即可(原则上要打开 WordPress 原生嵌套,具体木有去研究。)

* 代码放到 <?php ?>

 /* 邮件通知 by Qiqiboy */
 function comment_mail_notify($comment_id) {
     $comment = get_comment($comment_id);//根据id获取这条评论相关数据
     $content=$comment->comment_content;
     //对评论内容进行匹配
     $match_count=preg_match_all('/<a href="#comment-([0-9]+)?" rel="nofollow">/si',$content,$matchs);
     if($match_count>0){//如果匹配到了
         foreach($matchs[1] as $parent_id){//对每个子匹配都进行邮件发送操作
             SimPaled_send_email($parent_id,$comment);
         }
     }elseif($comment->comment_parent!='0'){//以防万一,有人故意删了@回复,还可以通过查找父级评论id来确定邮件发送对象
         $parent_id=$comment->comment_parent;
         SimPaled_send_email($parent_id,$comment);
     }else return;
 }
 add_action('comment_post', 'comment_mail_notify');
 function SimPaled_send_email($parent_id,$comment){//发送邮件的函数 by Qiqiboy.com
     $admin_email = get_bloginfo ('admin_email');//管理员邮箱
     $parent_comment=get_comment($parent_id);//获取被回复人(或叫父级评论)相关信息
     $author_email=$comment->comment_author_email;//评论人邮箱
     $to = trim($parent_comment->comment_author_email);//被回复人邮箱
     $spam_confirmed = $comment->comment_approved;
     if ($spam_confirmed != 'spam' && $to != $admin_email && $to != $author_email) {
         $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 發出點, no-reply 可改為可用的 e-mail.
         $subject = '您在 [' . get_option("blogname") . '] 的留言有了回應';
         $message = '<div style="background-color:#eef2fa;border:1px solid #d8e3e8;color:#111;padding:0 15px;-moz-border-radius:5px;-webkit-border-radius:5px;-khtml-border-radius:5px;">
             <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
             <p>您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:<br />'
             . trim(get_comment($parent_id)->comment_content) . '</p>
             <p>' . trim($comment->comment_author) . ' 给你的回复:<br />'
             . trim($comment->comment_content) . '<br /></p>
             <p>您可以点击 <a href="' . htmlspecialchars(get_comment_link($parent_id,array("type" => "all"))) . '">查看回复的完整內容</a></p>
             <p>欢迎再度光临 <a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
             <p>(此邮件有系统自动发出, 请勿回复.)</p></div>';
         $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
         $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
         wp_mail( $to, $subject, $message, $headers );
     }
 }

这篇是过渡文章,为下篇文章的代码做准备。

zww
or
oooo

“整理: WordPress 评论回复邮件通知代码”有121条评论

  1. 有空就来大叔这逛逛,学习学习....。。

  2. zee says:

    :roll: 我的主题木有 可以试一下、

    1. zwwooooo says:

      @zee
      试试吧,很方便

  3. 调皮鬼 says:

    哈,很期待,我正好想将这个功能添加到我的主题中去呢

  4. 诶,有技术就是好,无插件化~

    1. zwwooooo says:

      @本事不少
      插件方便,主题整合也是为了方便,不一定是因为速度。

  5. 砼砼 says:

    make一下,稍后来看

    1. zwwooooo says:

      @砼砼
      你还有折腾博客?

  6. wmtimes says:

    下篇有什么大作品了嘛要?

    1. zwwooooo says:

      @wmtimes
      没啥,小众需求而已,已写

  7. Jutoy says:

    死人复活路过。。 :grin:

  8. 老谢 says:

    果断收走

  9. 对。有些评论的确不好

  10. 久酷 says:

    大叔这几天没更新博客啊,偷懒了哦

    1. zwwooooo says:

      @久酷
      对啊,文囧很久啊,故意拖时间

  11. 秦天SEO says:

    经测试,是可以用,谢谢先。不过发现系统发给管理员的邮件,有问题。

    1. zwwooooo says:

      @秦天SEO
      不是发给系统管理员吧

  12. hicold says:

    期待正式版出来在使用ooo

    1. zwwooooo says:

      @hicold
      啥正式版?

  13. 自来水 says:

    这代码真的很实用的!

  14. 备案中 says:

    :razz: 我本来就是计划向你提问的,以前看你写过类似的文章。wordpress有邮件回复的插件,找了一两个试了,但是好像只能邮件通知博主,不能通知评论者?不能邮件回复其他人的评论中的评论……(措辞不当,但是你懂我的意思的)

    1. zwwooooo says:

      @备案中
      插件有2个不错的,你可能忘了设置了。

    2. Raidal says:

      请推荐款插件吧@zwwooooo

    3. zwwooooo says:

      @Raidal
      水煮鱼的哪款,具体名字我忘了

  15. Sugarhosts says:

    我是使用的插件,效果还可以。

    1. zwwooooo says:

      @Sugarhosts
      插件也很不错

  16. 所以呢 says:

    我想把邮件通知界面搞漂亮点,,可不会搞

    1. zwwooooo says:

      @所以呢
      会html就会了

    2. 所以呢 says:

      @zwwooooo
      这个倒是没问题,,,哎,算了,还是简单点好吧

    3. zwwooooo says:

      @所以呢
      简单就好,我喜欢简单

  17. 巢筑枝头 says:

    :arrow: 博主你用firefox7.01会不会间歇卡住?

    1. zwwooooo says:

      @巢筑枝头
      不会。如果你郁闷很久,可以看看这篇文章 http://zww.me/archives/25433 看看是不是同样原因导致

  18. [转]WordPress 评论回复邮件通知代码 | D调 says:

    [...] 来自ZWWOOOOOO:http://zww.me/archives/25536 [...]

  19. 小灰 says:

    忽然半夜想到这篇博文,问问zww这个要在前台回复才有效么?我忽然想起我自己在用的似乎后台回复是没有邮件的。

    1. zwwooooo says:

      @小灰
      这个后台也有效,但是需要 @xxx 模式,不然就乱套了,参考我写的文章《WP后台直接回复评论:支持二级无限嵌套评论、@方式、邮件通知》

  20. 小谭 says:

    不知道为什么,我的站就是不回复

    1. zwwooooo says:

      @小谭
      要主机支持mail才行。

发表评论

昵称 *

网址

B em del U Link Code Quote