O WP Cron é executado quando alguém visita seu site. Assim, se ninguém visitar, o cron nunca será executado.
Agora existem duas soluções:
- Desative o WP Cron, use um cron job real e personalize-o.
-
Use um intervalo personalizado em
wp_schedule_event()
:function myprefix_custom_cron_schedule( $schedules ) { $schedules['every_six_hours'] = array( 'interval' => 21600, // Every 6 hours 'display' => __( 'Every 6 hours' ), ); return $schedules; } add_filter( 'cron_schedules', 'myprefix_custom_cron_schedule' ); //Schedule an action if it's not already scheduled if ( ! wp_next_scheduled( 'myprefix_cron_hook' ) ) { wp_schedule_event( time(), 'every_six_hours', 'myprefix_cron_hook' ); } ///Hook into that action that'll fire every six hours add_action( 'myprefix_cron_hook', 'myprefix_cron_function' ); //create your function, that runs on cron function myprefix_cron_function() { //your function... }
e você pode ver esses tuts
custom wp cron
cron linux