WP_Schedule_Event已注册,但函数未运行

时间:2017-11-22 作者:chris_huh

我正在尝试使用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进行了核对,可以看到活动已经安排好了,下一个活动将在最后一个小时后到期。所以这似乎是可行的。当我在一个页面中直接调用我试图运行的函数时,它工作得很好(我在这里省略了代码,只是为了便于阅读)。它只是没有按计划运行。

有人知道我做错了什么吗?

谢谢

1 个回复
最合适的回答,由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\');
}

结束

相关推荐

Functions.php中的入队样式

这对我没用functions.php: if( is_page_template( \'template-flat.php\' ) ) { function flatsome_scripts() { wp_enqueue_style( \'flatsome-style\', get_template_directory_uri() .\'/flatash/css/foundation.css\', array(), \'2.1\', \'all\'); }