我是一个很奇怪的问题。我使用Wordress 3.9.1和管理员的插件,我有这样的代码:wp_schedule_single_event是否创建多个事件?
function do_this_event_now() {
for ($i = 0; $i < 5; $i++)
{
$my_post = array(
'post_title' => 'My post: '. date('Y-m-d H:i:s'),
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => 1,
'post_category' => array(1)
);
// Insert the post into the database
wp_insert_post($my_post);
sleep(50);
}
}
add_action('my_new_event', 'do_this_event_now');
wp_schedule_single_event(time(), 'my_new_event');
应该建立一个各后50秒。但结果很奇怪。
我正确地看到5个职位,但标题(其中我写的date('Y-m-d H:i:s')
)是真的错了:
My post: 2014-07-10 15:14:57
My post: 2014-07-10 15:15:47
My post: 2014-07-10 15:16:01
My post: 2014-07-10 15:16:38
My post: 2014-07-10 15:16:51
正如你所看到的差异不是50秒!
这怎么可能?这是一个单独的事件为什么这个奇怪的结果?
谢谢!
是的我明白你的意思......但是我在这里执行钩子一次,然后我在一个循环中创建帖子而不安排其他事件。所以我不明白原因..当它开始时,应该每隔50秒创建一个帖子(在睡眠(50)后没有? – Dail
@Dail同样的规则仍然适用。仅仅因为你使用'wp_schedule_single_event'并不意味着它会始终按照您的意愿运行,因为您有50秒的等待期,脚本会等待被告知再次运行,您需要有人访问该站点,否则您需要一些东西来为您模拟,例如我用上面的链接解释过。 – michaelrmcneill