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. 秦天SEO says:

    正在寻找类似的文章,自己的邮件回复,链接是文本形式的,想实现超链接形式,关注中!

  2. A.shun says:

    板凳
    等下篇

  3. 杨小凌 says:

    先评论了再说

  4. 小闇 says:

    留名看下篇 話說這個跟willin寫的有什麼分別?

    1. zwwooooo says:

      @小闇
      差不多,稍微有点不同。

  5. 呵呵 不错 我就是kan大叔的主题

  6. phoetry says:

    求不被Gmail归入SPAM攻略 :neutral: :neutral: :neutral:

    1. 无冷 says:

      @phoetry
      以前也碰到过,我换了个域名就没碰到过这种事了

    2. zwwooooo says:

      @phoetry
      这个真不知道如何

  7. Dick_Wu says:

    表示有些主机不支持php mail函数的压力会巨大~
    不过还好网上有解决方案。ZWWoOoOo能不能也帮忙找个方案?

    1. 寂静 says:

      @Dick_Wu
      博客主机好像都支持的吧?去和主机商抗议 :smile:

    2. zwwooooo says:

      @Dick_Wu
      不支持解决方法很简单:换主机,哈哈哈

    3. Dick_Wu says:

      @寂静
      嗯。支持的~
      但是我在二级目录下的网站就不知吃了。。不知道是不是我技术原因。。。。
      还好我找到了解决方案~

  8. Demon says:

    我现在用W大大的。

    1. zwwooooo says:

      @Demon
      willin的本来就好,这个类似的。

  9. axiu says:

    很好奇下篇会是什么 :twisted: :twisted:

    1. zwwooooo says:

      @axiu
      哈哈哈,卖关子

  10. 阿福 says:

    这个实用,继续等下篇 :lol:

    1. zwwooooo says:

      @阿福
      比较方便

  11. Sucy says:

    这个可以有啊

  12. 折子戏 says:

    请问z神我想实现这样个缩略图功能应该怎么做、?

    任意上传大小图片,设置为特色图像后
    首页固定宽度200,高度不限,但必须是全图的缩略效果。
    比如我上传一张500X500的图片
    首页自动缩放为200X200
    如果我上传一张400X600的图片
    首页就自动缩放为200X400
    就是要等比例缩放来达到现实全图的功能。。
    希望高手帮忙实现。!
    邮箱:181499578@qq.com

    1. zwwooooo says:

      @折子戏
      其实你不考虑生成缩略图,可以直接用css来控制图片大小,如给图片加上 width:200px; height:auto;
      即可。
      如果你要利用wp原生的缩略图片功能生成缩略图,那么就要定义大小,然后修改定义特色图片的大小,加上非裁剪参数。具体参考wp官方codex

  13. 学习了:)正要加入这个功能,不过我觉得这个功能有的时候又会很讨厌,总是给我发一堆别人的回复。

    1. zwwooooo says:

      @尘埃影像
      博主回复才通知

  14. 企鹅君 says:

    俩月前弄过一个类似的,配合两层嵌套,向被@的人发送邮件通知。

    1. zwwooooo says:

      @企鹅君
      现在来说是比较常用的功能

  15. 河河 says:

    来试试回复样式

  16. 还是有勾勾选择的哪种可善点。。

    1. zwwooooo says:

      @yesureadmin
      呵呵,博主回复才通知没神马关系,最怕那种谁回复都通知的

  17. 寂静 says:

    很给力哦,话说我用插件都不生效,要关了Ajax才生效,用了小z的之后给力了 :mrgreen:

    1. Dick_Wu says:

      其实插件是可以的,但是要删一段代码。
      围观链接

    2. zwwooooo says:

      @寂静
      小z……我立即年轻10几岁。

  18. 郑永 says:

    终于wordpress又有文章了,呵呵。

    1. zwwooooo says:

      @郑永
      没啥好写啦

  19. love02xp says:

    期待中,这个功能实在想要,也不是知道自己的博客有没有这个功能。

    1. zwwooooo says:

      @love02xp
      这……有没有都不知道就够糊涂了……

  20. win8迷 says:

    俺用的就是这代码

    1. zwwooooo says:

      @win8迷
      都是差不多的东西

回复给 杨小凌 ¬
取消回复

昵称 *

网址

B em del U Link Code Quote