前段时间发现所用主题在不登陆情况下评论后,博主这边回复,留言人收不到邮件。因为我也没有这方面技术,只有一直在咨询相关的技术大佬。都先让我问文开发者这边,看看能不能解决。
关于这个问题我也问过社区,开发者好像说没打算开发这个功能。这件事就一直拖了很久,,,


但上次在登山亦有道博主的时候随口好奇就问了一下,没想到博主已经解决了该问题。还给我推荐了,他修改的代码文章。
一、邮件恢复更改
文章原文:折腾访客邮件回复
以下是他修改的代码,我仅做摘抄记录留档。将此代码放在主题根目录的functions.php即可。
//访客评论邮件回复
add_action('comment_post', 'comment_mail_notify', 99);
add_action('comment_unapproved_to_approved', 'comment_mail_notify', 99);
function comment_mail_notify($comment_id) {
$comment = get_comment($comment_id);
if ($comment->comment_approved != '1') return;//如果评论未通过审核,return
$admin_email = get_bloginfo ('admin_email'); // $admin_email 可改为你指定的 e-mail.
$comment_author_email = trim($comment->comment_author_email);
$parent_id = $comment->comment_parent ? $comment->comment_parent : '';
$to = $parent_id ? trim(get_comment($parent_id)->comment_author_email) : '';
$spam_confirmed = $comment->comment_approved;
if (($parent_id != '') && ($spam_confirmed != 'spam') && ($to != $admin_email)) {
/* 上面的if判断是决定是否发出邮件的关键:
($parent_id != '') && ($spam_confirmed != 'spam'): 评论是被回复的, 而且不是 spam 才可以发(必需!!)
($to != $admin_email) : 不给 admin发邮件(可选).
($comment_author_email == $admin_email) : 只有 admin 的回复才发邮件(可选).
可根据个人需要修改上面的条件.
*/
$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 = '您好!' . trim(get_comment($parent_id)->comment_author) . ',';//邮件内容
$message .= '您于'. trim(get_comment($parent_id)->comment_date) . ' ';
$message .= '在《' . get_the_title($comment->comment_post_ID) . '》中发表评论:' . '</br>';
$message .= '<div style="padding: 10px 15px; border-radius: 8px; background: rgba(141, 141, 141, 0.05); line-height: 1.7;">' . nl2br(get_comment($parent_id)->comment_content) . '</div>';
$message .= '</br>';
$message .= '' . trim($comment->comment_author) . '';
$message .= ' 于'. trim($comment->comment_date) . ' 给您的回复如下:</br>';
$message .= '<div style="padding: 10px 15px; border-radius: 8px; background: rgba(141, 141, 141, 0.05); line-height: 1.7;">' . nl2br($comment->comment_content) . '</div>';
$message .= '</br>';
$message .= '您可以点击下方按钮查看回复内容</br>';
$message .= '<a target="_blank" style="margin-top: 20px;padding:5px 20px" class="but jb-blue" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看回复</a>' . "</br>";
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
//wp_mail发送邮件
wp_mail( $to, $subject, $message, $headers );
}
}
二、添加网址填写框
在路径/www/wwwroot/jingxin18.cn/wp-content/themes/zibll/template/comments.php找到comments.php文件,在文件的113后边输入以下代码即可。
//自己加的网址填写框
echo '<li class="line-form">';
echo '<input type="text" name="url" class="line-form-input" tabindex="3" value="' . esc_attr($comment_author_url) . '" placeholder="">';
echo '<div class="scale-placeholder">网址' . $o_t . '</div>';
echo '<div class="abs-right muted-color"><i class="fa fa-fw fa-sitemap"></i></div>';
echo '<i class="line-form-line"></i>';
echo '</li>';

最后感谢登山亦有道博主,帮我解决了相关问题。
© 版权声明
本站作品采用“知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议”进行许可。除非注明,否则均为作者原创文章,您可转载本站文章,请以超链接形式标明本文原始出处、作者信息以及版权声明。如果本文有侵犯到您的权益,请及时与我们联系,我们将在第一时间删除,感恩您的理解包容。
THE END












。晚上怕吓到人![表情[wozuimei]-二猫blog](https://cdn.jingxin18.cn/wp-content/themes/zibll/img/smilies/wozuimei.gif)
- 最新
- 最热
只看作者