📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials WordPress Development WordPress Cron

WordPress Cron

5 min read
WP-Cron schedules background tasks — fires on page loads, not real cron; use server cron for reliability.

WP-Cron Scheduled Tasks

[['before'=>'30 days ago']],'numberposts'=>-1]);
    foreach ($old as $p) wp_delete_post($p->ID, true);
    error_log('Cleanup ran: ' . date('Y-m-d H:i:s'));
});

// Unschedule on deactivation
register_deactivation_hook(__FILE__, function() {
    wp_clear_scheduled_hook('my_daily_cleanup');
});

// Custom interval
add_filter('cron_schedules', function($s) {
    $s['every_5min'] = ['interval'=>300,'display'=>'Every 5 min'];
    return $s;
});

// Note: WP-Cron fires on page loads
// For reliability, use server cron:
# */5 * * * * wget -q -O - https://mysite.com/wp-cron.php?doing_wp_cron