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

发布于 2017-11-07 23:19:07 字数 1536 浏览 2118 评论 0

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

在当前的 WordPress 主题目录下的 functions.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() 函数。如果你有成百上千个注册用户,那么你也就需要发这么多封邮件,可以预想你发布文章的时候就得等这些邮件发完,当然这也就意味着你的邮件可能会被一些邮件服务器判为垃圾邮件或者拒收。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文