我正在尝试使用wp\\u schedule\\u event每小时运行一次函数。我正在使用以下代码:
/* Add FB Sync schedule */
register_activation_hook(__FILE__, \'cp_fb_schedule\');
// Scheduled Action Hook
function cp_fb_scheduled_sync( ) {
// run the function
}
// Schedule Cron Job Event
function cp_fb_schedule() {
if ( ! wp_next_scheduled( \'cp_fb_scheduled_sync\' ) ) {
wp_schedule_event( time(), \'hourly\', \'cp_fb_scheduled_sync\' );
}
}
add_action( \'wp\', \'cp_fb_schedule\' );
register_deactivation_hook(__FILE__, \'my_deactivation\');
function my_deactivation() {
wp_clear_scheduled_hook(\'cp_fb_scheduled_sync\');
}
我已经与wp\\U next\\u scheduled进行了核对,可以看到活动已经安排好了,下一个活动将在最后一个小时后到期。所以这似乎是可行的。当我在一个页面中直接调用我试图运行的函数时,它工作得很好(我在这里省略了代码,只是为了便于阅读)。它只是没有按计划运行。
有人知道我做错了什么吗?
谢谢
最合适的回答,由SO网友:Drupalizeme 整理而成
我已经重构了代码并进行了测试,所以这应该会让您走上正确的方向!但我改变了什么?我添加action hook cp_fb_scheduled_sync 并设置为调用它hourly 这只需要运行一次,WP知道时间间隔。
/* Add FB Sync schedule */
register_activation_hook(__FILE__, \'cp_fb_schedule\');
// Scheduled Action Hook
function cp_fb_scheduled_sync_function( ) {
// run the function
}
// Schedule Cron Job Event
function cp_fb_schedule() {
if ( ! wp_next_scheduled( \'cp_fb_scheduled_sync\' ) ) {
wp_schedule_event( time(), \'hourly\', \'cp_fb_scheduled_sync\' );
}
}
add_action( \'cp_fb_scheduled_sync\', \'cp_fb_scheduled_sync_function\' );
register_deactivation_hook(__FILE__, \'my_deactivation\');
function my_deactivation() {
wp_clear_scheduled_hook(\'cp_fb_scheduled_sync\');
}