当前位置:K88软件开发文章中心编程全书编程全书02 → 文章内容

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

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 9:17:18

-->

很多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
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 = 'k88编程网有新文章';

        // 邮件内容
        $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');

你可以根据自己的实际,修改邮件的标题和内容。

如果你想不想折腾代码,可以使用 Notify Users E-Mail 插件,支持自定义接收邮件的用户类型、邮件主题和内容,也可以添加额外的收件人:

如果你还想给网站添加邮件订阅功能,可以使用 Simple Subscribe 插件,它不仅可同时支持给订阅用户和已注册用户发送邮件通知哦!

当然,只要发送邮件,就必须确保你的主机支持 mail 函数,或者使用 SMTP 功能。


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