WordPress 要想在第一时间知道有人在自己博客留言,或是在第一时间回复留言再第一时间发邮件通知别人,这就需要WordPress博客拥有邮件通知功能。这个功能可以使用相关插件实现,但是朔月一直提倡轻量化,能不用插件绝不用插件!经过多次寻找,多次测试,终于找到了WordPress 非插件实现评论回复邮件提醒通知的方法。
操作请注意:
1.朔月一直强调不要使用记事本编辑php文件,否则很可能出现意想不到的错误,推荐使用UltraEdit,Dreamweaver等,我是用的winscp自带的编辑。
2.如果对于修改代码不是很有把握,请预先备份好原来的文件。
3.复制本文的代码,如果是全角符号,请自行改为半角符号。
评论邮件通知的方法:
登陆博客后台,点击“外观”选项卡下的“编辑”选项进入主题编辑界面,在functions.php文件中的<?php和?>之间添加以下函数即可:
/* comment_mail_notify by shknn.com. (邮件回复系统) */
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'])); //e-mail 发出点, wordpress 可改为你的mail前缀.
$to = trim(get_comment($parent_id)->comment_author_email);
$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>您可以点击 查看回复完整內容</p>
<p>欢迎再度光临 ' . get_option('blogname') . '</p>
<p>(此邮件由系统自动发送,请勿回复.)</p>
</div>';
$from = "From: "" . get_option('blogname') . "" <$wp_email>";
$headers = "$fromnContent-Type: text/html; charset=" . get_option('blog_charset') . "n";
wp_mail( $to, $subject, $message, $headers );
//echo 'mail to ', $to, '<br/> ' , $subject, $message; // for testing
}
}
add_action('comment_post', 'comment_mail_notify');
// -- END --
2014年08月11日 下午10:20 沙发
学习了