What is WP-Cron in WordPress? How is it different from a real cron job?
WP-Cron is the scheduler of WordPress. It does not run all the time like a server cron. It checks for due tasks when a page is loaded (through wp-cron.php), so a task can be late if there are no visitors.
$ wp cron event list –fields=hook,recurrence
hook recurrence
recovery_mode_clean_expired_keys 1 day
wp_privacy_delete_old_export_files 1 hour
wp_privacy_personal_data_cleanup_requests 1 day
wp_version_check 12 hours
wp_update_plugins 12 hours
wp_update_themes 12 hours
wp_site_health_scheduled_check 1 week
Schedule your own task with wp_schedule_event() and attach a function to its hook:
add_action( 'tc_daily_task', function () {
update_option( 'tc_last_run', 'task ran' );
} );
if ( ! wp_next_scheduled( 'tc_daily_task' ) ) {
wp_schedule_event( time() + 3600, 'daily', 'tc_daily_task' );
}
echo 'Scheduled: ' . ( wp_next_scheduled( 'tc_daily_task' ) ? 'yes' : 'no' ) . "\n";
do_action( 'tc_daily_task' ); // run it now, to test
echo get_option( 'tc_last_run' );
Scheduled: yes
task ran
Use a real cron for big sites
Turn off the visit based trigger, and call wp-cron.php from the server every few minutes:
// wp-config.php
define( 'DISABLE_WP_CRON', true );
*/5 * * * * cd /var/www/html && wp cron event run --due-now >/dev/null 2>&1
Remember to remove the scheduled event when your plugin is deactivated, with wp_clear_scheduled_hook().
| Tutorials |
|---|
| No Content Found. |
| Exercises & Assignments |
|---|
| No Content Found. |
| Interview Questions & Answers |
|---|
| No Content Found. |