发布文章时邮件通知已评论的用户

摘要

当您的wordpress博客发布新文章时,您首先想到的应该是百度会不会收录这篇文章,然后标题中的某个关健词能不能获得一个好的排名,但您有没有想过,在发布一篇有价值,含金量较高的文章时,通过邮件来通知在博客上参与过评论的所有用户,让他们来一起分享这样的好文章呢,其实我们的wordpress要实现这样一个功能,相当简单.一起来看看操作过程.

当您的wordpress博客发布新文章时,您首先想到的应该是百度会不会收录这篇文章,然后标题中的某个关健词能不能获得一个好的排名,但您有没有想过,在发布一篇有价值,含金量较高的文章时,通过邮件来通知在博客上参与过评论的所有用户,让他们来一起分享这样的好文章呢,其实我们的wordpress要实现这样一个功能,相当简单.一起来看看操作过程.

在当前主题的functions.php中添加代码

部落也没找过相关的插件,记得当时邮件回复评论者的一个插件好像具备这个功能,但部落没有使用过.当然,能用代码做到的,何必要用插件呢,首先,我们在当前主题的functions.php中添加以下代码:

//发布文章或者更新文章时邮件通知评论用户
add_action( 'submitpost_box', 'fo_submit_box');
function fo_submit_box( ){
echo '<div id="fo_side-sortables" class="meta-box-sortables ui-sortable">';
echo '<div id="fo_submit_box" class="postbox ">';
echo '<div class="handlediv" title="点击以切换"><br></div>';
echo '<h3 class="hndle"><span>邮件通知</span></h3>';
echo '<div class="inside"><div class="submitbox">';
echo ' <div style="padding: 10px 10px 0;text-align: left;"><label class="selectit" title="慎用此功能,重要文章才勾选嘛,以免引起读者反感哈"><input type="checkbox" name="FO_emaill_report_user" value="true" title="勾选此项,将邮件通知博客所有评论者"/>邮件通知博客所有评论者</label></div>';
echo '</div></div>';
echo '</div>';
echo '</div>';
}
//开始
add_action( 'publish_post', 'fo_emaill_report_users' );
function fo_emaill_report_users($post_ID)
{
//如果未勾选保存远程图片,不进行任何操作
if($_POST['FO_emaill_report_user'] != 'true'){
return;
}

//修订版本不通知,以免滥用
if( wp_is_post_revision($post_ID) ){
return;
}

//获取wp数据操作类
global $wpdb;
// 读数据库,获取所有用户的email
$wp_user_emails = $wpdb->get_results("SELECT DISTINCT comment_author, comment_author_email FROM $wpdb->comments WHERE TRIM(comment_author_email) IS NOT NULL AND TRIM(comment_author_email) != ''");

// 获取博客名称
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
// 获取博客URL
$blogurl = get_bloginfo("siteurl");

//文章链接
$post_link = get_permalink($post_ID);
//文章标题$post -> post_title
$post_title = strip_tags($_POST['post_title']);
//文章内容$post->post_content
$post_content = strip_tags($_POST['post_content']);
//文章摘要
$output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,0}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,200}).*/s','\1',$post_content).'......';

//邮件头,以免乱码
$message_headers = "Content-Type: text/html; charset=\"utf-8\"\n";
// 邮件标题
$subject = '《'.$blogname.'》有新文章发表了,速来围观。';

foreach ( $wp_user_emails as $wp_user_email )
{
// 邮件内容
$message = '
<div style="MARGIN-RIGHT: auto; MARGIN-LEFT: auto;">
<strong style="line-height: 1.5; font-family:Microsoft YaHei;">
亲爱的'.$wp_user_email->comment_author.':
</strong>
<p style="FONT-SIZE: 14px; PADDING-TOP: 6px">
您曾经来访过的博客《'.$blogname.'》有新文章发表了,小伙伴都去围观了,就差您了。
</p>
<p style="FONT-SIZE: 14px; PADDING-TOP: 6px">
文章标题:<a title="'.$post_title.'" href="'.$post_link.'" target="_top">'.$post_title.'</a>
<br/>
文章摘要:'.$output.'
</p>
<p style="FONT-SIZE: 14px; PADDING-TOP: 6px">
您可以点击链接
<a href="'.$blogurl.'" style="line-height: 1.5;">'.$blogname.'</a>
>
<a title="'.$post_title.'" href="'.$post_link.'" target="_top">'.$post_title.'</a>
详细查看
</p>
<p style="font-size: 14px; padding-top: 6px; text-align: left;">
<span style="line-height: 1.5; color: rgb(153, 153, 153);">
来自:
</span>
<a href="'.$blogurl.'" style="line-height: 1.5;">'.$blogname.'</a>
</p>
<div style="font-size: 12px; border-top-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; height: 35px; width: 500px; color: rgb(102, 102, 102); line-height: 35px; background-color: rgb(245, 245, 245);">
该邮件为系统发送邮件,请勿直接回复!如有打扰,请向博主留言反映。灰常感谢您的阅读!
</div>
</div>';

wp_mail($wp_user_email->comment_author_email, $subject, $message, $message_headers);
}
}

这时我们再进入到文章的编辑后台,当您发布或者更新文章时,会在右侧的上方看到如下图所示:

发布文章时邮件通知已评论的用户

博主还发现了这个:

SmallTown
  • 版权声明 本文源自 尹先生 整理 发表于 2017年5月29日15:35:19
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: