WordPress发布新文章Email通知注册用户
2014-11-20 17:53
316 查看
很多WordPress博客都开放了用户注册的功能,用户可以参与到博客的内容建设当中来,也就是一个博客由多个用户来写。现在有这样的需求,如何实现在某一个用户发表文章后,其他用户都能收到Email通知?下面是实现方法:
在当前的WordPress主题目录下的pluggable.php中,添加以下php代码就可以了:
function newPostNotify($post_ID) {
if( wp_is_post_revision($post_ID) ) return;
global $wpdb;
$get_post_info = get_post($post_ID);
if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {
// 读数据库,获取所有用户的email
$wp_user_email = $wpdb->get_col("SELECT DISTINCT user_email FROM $wpdb->users");
// 邮件标题
$subject = 'xx博客有新文章';
// 邮件内容
$message = '文章标题:' . get_the_title($post_ID) . '<br />';
$message .= '文章网址:<a href="' . get_permalink($post_ID) . '">' . get_permalink($post_ID) . '</a><br />';
// 发邮件
$message_headers = "Content-Type: text/html; charset=\"utf-8\"\n";
wp_mail($wp_user_email, $subject, $message, $message_headers);
}
}
// 钩子,一旦WordPress有新文章发布或文章被修改即刻执行newPostNotify函数
add_action('publish_post', 'newPostNotify');
代码已经添加了注释,相对来说是可以比较容易理解的,每次有新文章发布就会自动给所有注册用户发Email通知,不需要你任何干预。如果你的博客不能发邮件,可能是你的主机问题,问问你的主机客服是否支持PHP的mail()函数。如果你有成百上千个注册用户,那么你也就需要发这么多封邮件,可以预想你发布文章的时候就得等这些邮件发完,当然这也就意味着你的邮件可能会被一些邮件服务器判为垃圾邮件或者拒收。
个人不太赞同这种做法,有种骚扰的嫌疑,毕竟不是每位注册用户都希望收到类似的邮件。
在当前的WordPress主题目录下的pluggable.php中,添加以下php代码就可以了:
function newPostNotify($post_ID) {
if( wp_is_post_revision($post_ID) ) return;
global $wpdb;
$get_post_info = get_post($post_ID);
if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {
// 读数据库,获取所有用户的email
$wp_user_email = $wpdb->get_col("SELECT DISTINCT user_email FROM $wpdb->users");
// 邮件标题
$subject = 'xx博客有新文章';
// 邮件内容
$message = '文章标题:' . get_the_title($post_ID) . '<br />';
$message .= '文章网址:<a href="' . get_permalink($post_ID) . '">' . get_permalink($post_ID) . '</a><br />';
// 发邮件
$message_headers = "Content-Type: text/html; charset=\"utf-8\"\n";
wp_mail($wp_user_email, $subject, $message, $message_headers);
}
}
// 钩子,一旦WordPress有新文章发布或文章被修改即刻执行newPostNotify函数
add_action('publish_post', 'newPostNotify');
代码已经添加了注释,相对来说是可以比较容易理解的,每次有新文章发布就会自动给所有注册用户发Email通知,不需要你任何干预。如果你的博客不能发邮件,可能是你的主机问题,问问你的主机客服是否支持PHP的mail()函数。如果你有成百上千个注册用户,那么你也就需要发这么多封邮件,可以预想你发布文章的时候就得等这些邮件发完,当然这也就意味着你的邮件可能会被一些邮件服务器判为垃圾邮件或者拒收。
个人不太赞同这种做法,有种骚扰的嫌疑,毕竟不是每位注册用户都希望收到类似的邮件。
相关文章推荐
- WordPress发布新文章Email通知注册用户
- WordPress公布新文章Email通知注冊用户
- 关闭wordpress新用户注册邮件通知方法
- WordPress实现新文章Email通知功能
- 关闭Wordpress新用户注册邮件通知方法
- WordPress 前端投稿/编辑发表文章插件 DJD Site Post(支持游客和已注册用户)汉化版 免费下载
- 黄聪:WordPress 后台发布文章时提示用户选择分类
- 黄聪:wordpress文章同步发布到网易、天涯、新浪博客、百度空间插件
- SAE平台搭建wordpress实现注册用户发送邮件
- 解决IXR发布文章到WordPress无法将文章状态设置成Publish状态的问题
- 黄聪:wordpress后台发布文章,自定义栏目和字段
- 黄聪:解决wordpress定时发布文章失败”丢失计划任务”的插件
- SAE平台搭建wordpress实现注册用户发送邮件
- wordpress之客户端发布文章
- 在WordPress中隐藏文章发布时间
- WordPress用户注册成功后自动登录
- 在WordPress中注册新用户时无法收到确认邮件的问题
- WordPress初级教程-12: Wordpress文章发布界面/ Write Post
- 黄聪:wordpress后台发布文章,自定义栏目支持HTML,可插入图片
- Web-meetme上两种用户通知方式(email,飞信)