知更鸟主题回复邮件通知功能失效修复方法

发布时间:

知更鸟主题回复邮件通知功能失效修复方法

星光最近使用了知更鸟主题的最新版本,主题变化挺大的,越来越好,在这里要感谢“鸟哥”的辛勤付出,开发出了这么优秀的WordPress主题!自从更新主题后,博客也有不少网友过来捧场留言,星光也在第一时间回复了大家,但回复后的评论就一直没有了下文,如同石沉大海一般,很难与博友们互动起来。虽然也感觉有点不太对劲,又加之这段时间比较忙,也就没有去细究原因。星光心里安慰道:可能是来留言的博客大佬们都挺忙的,没时间来互动评论吧!

直到今天下午,“简单生活”的博主在QQ上面@星光说:你的“回复邮件通知”功能是不是失效了?星光才意识到问题可能出现在了这里,马上用另一个QQ号码在博客上留言并及时进行了回复,一番等待之后,确实没有收到评论被回复的邮件提醒。至此,终于搞清了为什么星光给大家回复留言后就没有了后续的评论呢,原来是“回复邮件通知”功能失效了,让大家误以为是星光没有对评论进行回复呢!

发现了问题所在后,采用了“简单生活”博主给出的修改意见,现分享给大家,同样有“回复邮件通知”功能失效的博主可以修复下此BUG。

知更鸟作者给出的方法(推荐):

修正评论回复收不到邮件

首先你需要进WP后台---设置---讨论页面,在发送电子邮件通知我 中勾选 "有人发表评论时 ",保存后,测试发表一个留言评论,如果能收到邮件的情况下:

打开主题函数模板functions.php,在// 全部结束下面添加:

require get_template_directory() . '/inc/notify.php';

到主题选项---基本设置中勾选“启用回复邮件通知”并保存设置。

然后再测试一下回复留言评论。

注:邮件回复可能会被邮箱当成垃圾邮件,可以到邮箱垃圾中找一找。

修改方法如下:

第一步,将Begin主题选项 - 基本设置 - 启用回复邮件通知功能关闭。

第二步,将 wp-content/themes/begin/inc 里面 notify.php 中的代码复制到 founctions.php 里面,注意复制代码时不要带上 <?php 或者使用下面博主给出的知更鸟主题回复邮件显示样式美化代码。

//评论回复邮件
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 = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));//发件人e-mail地址,no-reply可改为可用的e-mail
$to = trim(get_comment($parent_id)->comment_author_email);
$subject = '您在 [' . get_option("blogname") . '] 的留言有了回应';
$message = '<div style="border-right:#666666 1px solid;border-radius:8px;color:#111;font-size:12px;width:95%;border-bottom:#666666 1px solid;font-family:微软雅黑,arial;margin:10px auto 0px;border-top:#666666 1px solid;border-left:#666666 1px solid"><div class="adM">
</div><div style="width:100%;background:#666666;min-height:60px;color:white;border-radius:6px 6px 0 0"><span style="line-height:60px;min-height:60px;margin-left:30px;font-size:12px">您在<a style="color:#00bbff;font-weight:600;text-decoration:none" href="' . get_option('home') . '" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank">' . get_option('blogname') . '</a> 上的留言有回复啦!</span> </div>
<div style="margin:0px auto;width:90%">
<p><span style="font-weight:bold;">' . trim(get_comment($parent_id)->comment_author) . '</span>, 您好!</p>
<p>您于' . trim(get_comment($parent_id)->comment_date) . ' 在文章《' . get_the_title($comment->comment_post_ID) . '》上发表评论: </p>
<p style="border-bottom:#ddd 1px solid;border-left:#ddd 1px solid;padding-bottom:20px;background-color:#eee;margin:15px 0px;padding-left:20px;padding-right:20px;border-top:#ddd 1px solid;border-right:#ddd 1px solid;padding-top:20px">' . nl2br(get_comment($parent_id)->comment_content) . '</p>
<p><span style="font-weight:bold;">' . trim($comment->comment_author) . '</span> 于' . trim($comment->comment_date) . ' 给您的回复如下: </p>
<p style="border-bottom:#ddd 1px solid;border-left:#ddd 1px solid;padding-bottom:20px;background-color:#eee;margin:15px 0px;padding-left:20px;padding-right:20px;border-top:#ddd 1px solid;border-right:#ddd 1px solid;padding-top:20px">' . nl2br($comment->comment_content) . '</p>
<p>您可以点击 <a style="color:#00bbff;text-decoration:none" href="' . htmlspecialchars(get_comment_link($parent_id)) . '" target="_blank" rel="external nofollow" target="_blank">查看回复的完整内容</a></p>
<p>感谢你对 <a style="color:#00bbff;text-decoration:none" href="' . get_option('home') . '" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank">' . get_option('blogname') . '</a> 的关注,如您有任何疑问,欢迎在博客留言,我会一一解答</p><p style="color:#A8979A;">(此邮件由系统自动发出,请勿回复。)</p></div></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 );
//echo 'mail to ', $to, '<br/> ' , $subject, $message; // for testing
}
}
add_action('comment_post', 'comment_mail_notify');

修复完后大家可以再主动测试下,看看能不能自动进行邮件回复提醒,避免错失博客互动性,走失流量!