【发布时间】:2017-03-10 00:11:49
【问题描述】:
我编写了以下函数,该函数将在发布帖子时向每个用户发送电子邮件。它工作得很好,但我遇到的问题是发布帖子可能需要一些时间,因为它需要通过 while 循环运行的次数。目前有 110 名成员。
现在我的问题是,有没有一种简单的方法可以延迟这个过程,以便帖子可以发布,然后电子邮件发送功能作为一项任务在后台处理?
function send_email_notifications() {
$args = array(
'post_type' => 'members',
'orderby' => 'title',
'order' => 'ASC',
'posts_per_page' => -1,
'post_parent' => 0,
'post_status' => array('pending', 'draft', 'publish'),
);
$emailSearch = new WP_Query($args);
if(isset($_REQUEST['send_email_notification'])) {
if($emailSearch->have_posts()) {
while($emailSearch->have_posts()) {
$emailSearch->the_post();
wp_mail('test@test.com', 'Test', 'Test');
}
}
}
}
add_action('publish_notifications', 'send_email_notifications', 10, 2);
【问题讨论】:
-
当然。您正在寻找“作业调度程序”。