实现发布新文章Email通知注册用户

开放访客注册的博客都在想尽办法提高网站的 PV,像一些之前介绍的投稿,投稿排名这样一系列的功能可以吸引到顾客参与进来,从而可以达到网站最好的效果,开放注册的博客而且可以使用邮件系统来通知注册的用户你的网站有新的文章更新了,这个也是可以很好的提高回头率。

很多 WordPress 博客都开放了用户注册的功能,用户可以参与到博客的内容建设当中来,也就是一个博客由多个用户来写。现在有这样的需求,如何实现在某一个用户发表文章后,其他用户都能收到 Email 通知,下面是实 现方法:

在当前的 WordPress 主题目录下的 functions.php 中,添加以下 PHP 代码就可以了:

  1. function
  2. newPostNotify($post_ID) {
  3. if( wp_is_post_revision($post_ID) ) return;
  4. global $wpdb;
  5. $get_post_info = get_post($post_ID);
  6. if ( $get_post_info->post_status ==
  7. 'publish' && $_POST['original_post_status'] != 'publish' ) {
  8. // 读数据库,获取所有用户的email
  9. $wp_user_email =
  10. $wpdb->get_results("SELECT DISTINCT user_email FROM
  11. $wpdb->users");
  12. // 依次给每个Email发邮件
  13. foreach ( $wp_user_email as $email ) {
  14. // 邮件标题:xx博客有新文章
  15. $subject = 'xx博客有新文章';
  16. // 邮件内容:新文章网址:+ URL
  17. $message = '新文章网址:' . get_permalink($post_ID);
  18. // 发邮件
  19. wp_mail($email->user_email,$subject, $message);
  20. }
  21. }
  22. }
  23. // 钩子,一旦WordPress有新文章发布或文章被修改即刻执行newPostNotify函数
  24. add_action('publish_post', 'newPostNotify');

添加进去后把文件保存上传会空间就可以了,当文章更新的时候就会有邮件发送给注册的用户告知消息,这个方法是很多网站都会做的,所以大家可以考虑一下,还有一个问题是要说清楚的,因为 wordpress 的邮件 QQ 邮箱是收不到了,所以这个办法还是有点缺陷的,或者大家有能力可以鼓动用户订阅 RSS。

如果你的博客不能发邮件,可能是你的主机问题,问问你的主机客服是否支持 PHP 的 mail() 函数。如果你有成百上千个注册用户,那么你也就需要发这么多封邮件,可以预想你发布文章的时候就得等这些邮件发完,当然这也就意味着你的邮件可能会被一些邮件服务器判为垃圾邮件或者拒收。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress 代码实现用户自动登录

2022-6-19 17:16:54

WordPress教程

WordPress 优化加速动静分离方法汇总

2022-6-29 17:11:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索