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

Ludou

     很多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

露兜博客博主,男生,业余Web程序员,儒家思想受益者。文采不佳,不喜欢聚光灯,不喜欢吹牛,不喜欢无序的做事方式。闲时喜欢写些代码自娱自乐,并在博客中分享一些个人技术经验。

标签:

23 条评论

我来说两句
  1. zigbee

    不错的hack,和邮件订阅功能类似。

  2. 弈仙象棋

    还是喜欢订阅,因为一个是主动的,一个是被动的,另外在我网站上注册的人不多,而且注册的一般是忠实读者,也不用通知了,呵呵

  3. 优得客

    博主好像对WordPress研究非常深刻哦,好像写了不少改善WordPress的文章。

  4. 小杰博客

    貌似我没有收到你博客的这样类似的邮件哦,呵呵

  5. 哈哈大少

    你好,为什么我设置好了之后。post 新的文章之后,不会自动跳转回dashboard了,就停在post.php页面上,空白一片的??

  6. 哈哈大少

    你好,我有新的问题。就是邮件是发出去了,但是只有几个用户收得到。

    gmail,hotmail,163的收到~~

    但是有些朋友 是gmail的收不到,QQ的完全收不到。

    请教一下这个问题!! :)

    • Ludou

      一般的邮件服务器都不会允许你短时间内发送大量邮件的。要是这样的话,那随随便便都能漫天发垃圾邮件了。

    • Ludou

      文章中使用的是WordPress的内置函数wp_mail来发邮件,某些邮件系统拒绝我就不知道了。你可以试试用phpmailer来发邮件,具体上网搜索,这里不会给你提供代码。

    • Ludou

      或者你可以尝试搜索这款WordPress插件,估计比较适合你,搜索关键字:Mail_To_Commenters_When_Posting

  7. jwenlee

    神猫!膜拜!~~~~~~~~~~~~~~

  8. 电脑专家博客

    这款不错!后排支持 来晚了 呵呵

  9. pdu

    很佩服wordpress的功能,很强大

  10. 人人创意网

    曾经用过这个 引起别人的反感

  11. 电脑知识与技术博客

    我觉得也是。人家给你来过评论或许已经很不错了

  12. 不太赞同

    个人认为还是不要用了, 注册用户多的话, 个人感觉 会不会被误以为是垃圾邮件? 甚至主机商封呢..

    曾收藏你一片介绍mysql命令的文章, 很受益. 第一次留言, 感谢您啊.

  13. junewen

    本来也想使用这个功能的,看了这篇文章后决定不用了,呵呵。谢谢

  14. 搞笑博客

    可以改成作者文章通过了便邮件通知吗?

发表评论

订阅评论