wordpress的评论邮件回复功能
2009-04-24 by zhiwei
相信现在很多人都在使用wordpress的那个评论回复的插件(WP Thread Comment)吧,其中有个功能是当评论者的评论被人回复后可以邮件通知,通知的电子邮件地址一般都是 no-reply@博客地址,很不够个性,我今天看了下这个插件的代码,发现这个发件人地址是可以更改的,并且可以改成任意你想要的发件人地址,具体做法请看下段文字。顺便说一下,邮件发件人的地址并不是真正的发件人地址,真正的发件人地址在信头文件里,所以以后看到一些邮件,并且地址是自己熟悉的带有欺骗性质的邮件一定要看一下信头文件,看看是不是真实的邮件。
编辑WP Thread Comment 插件的代码,找到这一行代码,
$wp_email = ‘no-reply@’ . preg_replace(‘#^www\.#’, ”, strtolower($_SERVER['SERVER_NAME']));
然后将这一行代码做以下修改,$wp_email = ‘*@XX.com’; 其中 *@XX.com 就是你想要的发件人地址。改好后自己测试一下吧。
update: 更新一下,新版的wordpress后台已经有嵌套评论了(wordpress后台->设置->讨论->其他评论设置->允许嵌套N条评论),所以这个thread comment插件一般也就用不上了,可以使用comment-reply-notification这个插件来代替,安装这个插件并激活后可以到wordpress后台设置那里来对该插件做详细设置。具体设置方法可以参考插件页面。另外,自定义邮箱地址在我的主机上不能使用。
update20101210:现在已经可以不用插件来实现评论邮件回复了。我已经使用半年了,感觉很不错,将以下代码贴到主题的functions.php文件中的合适位置即可实现评论邮件回复功能。这样一来,你的wordpress博客就可以少用一个插件了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /* comment_mail_notify v1.0 by willin kan. (reply all comments) */ function comment_mail_notify($comment_id) { $comment = get_comment($comment_id); $parent_id = $comment->comment_parent ? $comment->comment_parent : ''; $spam_confirmed = $comment->comment_approved; if (($parent_id != '') && ($spam_confirmed != 'spam')) { $wp_email = 'wordpress@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); //from email address $to = trim(get_comment($parent_id)->comment_author_email); //to email address $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 /><b>' . trim(get_comment($parent_id)->comment_content) . '</b></p> <p>' . trim($comment->comment_author) . ' 给您的回应:<br /><b>' . trim($comment->comment_content) . '</b><br /></p> <p>您可以点击 <a href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看回应完整內容</a></p> <p>欢迎再次访问 <a href="' . get_option('home') . '"><b>' . get_option('blogname') . '</b></a></p> <p><b>注:此邮件由系统发出,但您的回复将发送至我的收件箱。</b></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 ); } } add_action('comment_post', 'comment_mail_notify'); |
© 2009, chenzhiwei.net. 版权所有.
本文永久链接:http://chenzhiwei.net/2009/04/wordpress-comments-reply/

yaya
你的博客看上去很漂亮,加油呀!我来回访了。
呵呵,用的是国外的一个主题,shades of blue,我感觉很简洁所以就使用了。你的主题也不错哦,适合自己的才是最好的。。