WordPress发布新文章Email通知注册用户
很多WordPress博客都开放了用户注册的功能,用户可以参与到博客的内容建设当中来,也就是一个博客由多个用户来写。现在有这样的需求,如何实现在某一个用户发表文章后,其他用户都能收到Email通知?下面是实现方法:
在当前的WordPress主题目录下的functions.php中,添加以下php代码就可以了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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_results("SELECT DISTINCT user_email FROM $wpdb->users"); // 依次给每个Email发邮件 foreach ( $wp_user_email as $email ) { // 邮件标题:xx博客有新文章 $subject = 'xx博客有新文章'; // 邮件内容:新文章网址:+ URL $message = '新文章网址:' . get_permalink($post_ID); // 发邮件 wp_mail($email->user_email, $subject, $message); } } } // 钩子,一旦WordPress有新文章发布或文章被修改即刻执行newPostNotify函数 add_action('publish_post', 'newPostNotify'); |
代码已经添加了注释,相对来说是可以比较容易理解的,每次有新文章发布就会自动给所有注册用户发Email通知,不需要你任何干预。如果你的博客不能发邮件,可能是你的主机问题,问问你的主机客服是否支持PHP的mail()函数。如果你有成百上千个注册用户,那么你也就需要发这么多封邮件,可以预想你发布文章的时候就得等这些邮件发完,当然这也就意味着你的邮件可能会被一些邮件服务器判为垃圾邮件或者拒收。
个人不太赞同这种做法,有种骚扰的嫌疑,毕竟不是每位注册用户都希望收到类似的邮件。
本文版权归露兜博客所有,转载引用请完整注明以下信息:
本文作者:Ludou
本文标题:WordPress发布新文章Email通知注册用户
本文地址:http://www.ludou.org/wordpress-new-post-notify-by-email.html
不错的hack,和邮件订阅功能类似。
对的,就是邮件订阅,但是一般用户现时更习惯rss订阅
还是喜欢订阅,因为一个是主动的,一个是被动的,另外在我网站上注册的人不多,而且注册的一般是忠实读者,也不用通知了,呵呵
博主好像对WordPress研究非常深刻哦,好像写了不少改善WordPress的文章。
貌似我没有收到你博客的这样类似的邮件哦,呵呵
文章最后一段已经表明了我的观点!
你好,为什么我设置好了之后。post 新的文章之后,不会自动跳转回dashboard了,就停在post.php页面上,空白一片的??
这个可能跟你的主机或者程序有关,可以重新安装WordPress
我重装之后还是一样喔~~~
那我也不清楚了
你好,我有新的问题。就是邮件是发出去了,但是只有几个用户收得到。
gmail,hotmail,163的收到~~
但是有些朋友 是gmail的收不到,QQ的完全收不到。
请教一下这个问题!! :)
一般的邮件服务器都不会允许你短时间内发送大量邮件的。要是这样的话,那随随便便都能漫天发垃圾邮件了。
文章中使用的是WordPress的内置函数wp_mail来发邮件,某些邮件系统拒绝我就不知道了。你可以试试用phpmailer来发邮件,具体上网搜索,这里不会给你提供代码。
或者你可以尝试搜索这款WordPress插件,估计比较适合你,搜索关键字:Mail_To_Commenters_When_Posting
神猫!膜拜!~~~~~~~~~~~~~~
这款不错!后排支持 来晚了 呵呵
很佩服wordpress的功能,很强大
曾经用过这个 引起别人的反感
我觉得也是。人家给你来过评论或许已经很不错了
个人认为还是不要用了, 注册用户多的话, 个人感觉 会不会被误以为是垃圾邮件? 甚至主机商封呢..
曾收藏你一片介绍mysql命令的文章, 很受益. 第一次留言, 感谢您啊.
确切的说是SQL
本来也想使用这个功能的,看了这篇文章后决定不用了,呵呵。谢谢
可以改成作者文章通过了便邮件通知吗?