这是自用的评论回复邮件通知代码,源码来自 Willin、Qiqiboy,有兴趣者可以去这两位作者博客看看。
这版本的评论回复通知是支持嵌套和@用户方式的。
用法很简单,把下面的代码扔到主题的 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
赏
oooo
or
- 本文标题:整理: WordPress 评论回复邮件通知代码
- 本文链接:https://zww.me/archives/25536
- 发布时间:2011年10月24日 16:39
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
有空就来大叔这逛逛,学习学习....。。
@闲来无事瞎扯蛋
荒淫荒淫
我的主题木有 可以试一下、
@zee
试试吧,很方便
哈,很期待,我正好想将这个功能添加到我的主题中去呢
@调皮鬼
试试吧
诶,有技术就是好,无插件化~
@本事不少
插件方便,主题整合也是为了方便,不一定是因为速度。
make一下,稍后来看
@砼砼
你还有折腾博客?
下篇有什么大作品了嘛要?
@wmtimes
没啥,小众需求而已,已写
死人复活路过。。
@Jutoy
的确是
果断收走
对。有些评论的确不好
大叔这几天没更新博客啊,偷懒了哦
@久酷
对啊,文囧很久啊,故意拖时间
经测试,是可以用,谢谢先。不过发现系统发给管理员的邮件,有问题。
@秦天SEO
不是发给系统管理员吧
期待正式版出来在使用ooo
@hicold
啥正式版?
这代码真的很实用的!
@自来水
很方便
我本来就是计划向你提问的,以前看你写过类似的文章。wordpress有邮件回复的插件,找了一两个试了,但是好像只能邮件通知博主,不能通知评论者?不能邮件回复其他人的评论中的评论……(措辞不当,但是你懂我的意思的)
@备案中
插件有2个不错的,你可能忘了设置了。
请推荐款插件吧@zwwooooo
@Raidal
水煮鱼的哪款,具体名字我忘了
我是使用的插件,效果还可以。
@Sugarhosts
插件也很不错
我想把邮件通知界面搞漂亮点,,可不会搞
@所以呢
会html就会了
@zwwooooo
这个倒是没问题,,,哎,算了,还是简单点好吧
@所以呢
简单就好,我喜欢简单
博主你用firefox7.01会不会间歇卡住?
@巢筑枝头
不会。如果你郁闷很久,可以看看这篇文章 http://zww.me/archives/25433 看看是不是同样原因导致
[...] 来自ZWWOOOOOO:http://zww.me/archives/25536 [...]
忽然半夜想到这篇博文,问问zww这个要在前台回复才有效么?我忽然想起我自己在用的似乎后台回复是没有邮件的。
@小灰
这个后台也有效,但是需要 @xxx 模式,不然就乱套了,参考我写的文章《WP后台直接回复评论:支持二级无限嵌套评论、@方式、邮件通知》
不知道为什么,我的站就是不回复
@小谭
要主机支持mail才行。