WP cron事件已设置,但函数未被激发

时间:2017-07-31 作者:mondi

我是一个WP-cron初学者,正在尝试制作一些测试函数。

因此,我有一个包含以下代码的测试页面:

if ( ! wp_next_scheduled( \'do_this_in_an_hour\' ) ) {
wp_schedule_single_event( time() + 40, \'do_this_in_an_hour\' );
}
对于测试:

echo wp_next_scheduled( \'do_this_in_an_hour\' );

echo \'<pre>\';
$cron_jobs = get_option( \'cron\' );
var_dump($cron_jobs);
echo \'</pre>\';
在我的职能中。php(不确定我是否必须把它放在那里):

function do_this_in_an_hour() {
    wp_mail(\'[email protected]\',\'this is a cron test!\',\'great here is the massage!\');
}
add_action( \'my_new_event\', \'do_this_in_an_hour\', 10, 3 );
现在,我看到cron作业被添加到cron job数组中,我确实为next\\u scheduled函数获取了一个timestep,当时间过去(40秒)时,我刷新后,它会从cron jobs数组中删除,但邮件没有发送(当然,在实际代码中,我有我的真实邮件地址,我单独测试了邮件功能,它正在工作)。

知道我做错了什么吗?

1 个回复
SO网友:mondi

我需要的是钩子名,而不是函数名,所以请不要使用此名称:

if ( ! wp_next_scheduled( \'do_this_in_an_hour\' ) ) {
wp_schedule_single_event( time() + 40, \'do_this_in_an_hour\' );
}
即:

if ( ! wp_next_scheduled( \'my_new_event\' ) ) {
wp_schedule_single_event( time() + 40, \'my_new_event\' );
}

结束

相关推荐

如何使php脚本只使用wp-cron运行

我有一个php脚本,它执行一个函数并创建一个包含结果的xml文件。我希望这个脚本每天只运行一次,我正在使用wordpress cron来实现这一点。问题是这个脚本总是在所有页面加载时运行,这很糟糕,因为它需要超过30秒才能完成。如何停止它始终运行并使其仅与wp cron一起工作?我读过关于cronjob的文章,但我的主机没有这个功能。这是我在php文件顶部使用的代码: add_action( \'my_cron_hook\', \'myfunction\' ); if( !wp_next