我最近遇到了WordPress邮件发送的问题,在我印象中WordPress有评论回复是可以正常发送邮件的,经过我的排查发现twentytwentyfour主题,在文章评论页面没有如果有人回复我的评论,请通过电子邮件通知我这个功能,昨天翻阅了WordPress Developer Resources文档开始折腾这个功能,成功实现了
1. 编辑twentytwentyfour主题的 functions.php
文件
- 编辑到您当前使用的主题目录,通常位于
wp-content/themes/your-theme-name/
- 找到
functions.php
文件并使用文本编辑器打开它。
2. 添加代码
将代码粘贴到 functions.php
文件的末尾,确保不要覆盖任何现有的代码
// WordPress Comment Reply Notification
function wpdocs_notify_comment_reply( $comment_id ) {
$comment = get_comment( $comment_id );
$parent_comment = get_comment( $comment->comment_parent );
// 只有当这是一个回复并且存在父级评论时才继续
if ( $comment->comment_parent != 0 && $parent_comment ) {
$parent_author_email = $parent_comment->comment_author_email;
$parent_author_name = $parent_comment->comment_author;
$post_title = get_the_title( $parent_comment->comment_post_ID );
$post_link = get_permalink( $parent_comment->comment_post_ID );
$reply_author_name = $comment->comment_author;
$reply_content = $comment->comment_content;
$site_name = get_bloginfo('name'); // 获取站点名称
// 避免给自己回复发送通知
if ( $parent_author_email != $comment->comment_author_email ) {
$subject = sprintf( '[%s] 您的评论收到了新的回复 - %s', $site_name, $post_title );
$message = sprintf(
"您好 %s,\n\n" .
"您在文章《%s》上的评论收到了新的回复。\n\n" .
"回复人:%s\n" .
"回复内容:\n%s\n\n" .
"点击以下链接查看完整对话:\n%s#comment-%s\n\n" .
"如果这封邮件不是由您回复的,请忽略。\n\n" .
"感谢您的参与!\n\n" .
"%s 团队",
$parent_author_name,
$post_title,
$reply_author_name,
$reply_content,
$post_link,
$comment->comment_parent,
$site_name
);
wp_mail( $parent_author_email, $subject, $message );
}
}
}
add_action( 'comment_post', 'wpdocs_notify_comment_reply' );
发表回复