wp cron

Tests, runs, and deletes WP-Cron events; manages WP-Cron schedules.

Commands Description
wp cron test Tests the WP Cron spawning system and reports back its status.
wp cron event list Lists scheduled cron events.
wp cron event schedule Schedules a new cron event.
wp cron event run Runs the next scheduled cron event for the given hook.
wp cron event unschedule Unschedules all cron events for a given hook.
wp cron event delete Deletes the next scheduled cron event for the given hook.
wp cron schedule list List available cron schedules.

Examples

# Test WP Cron spawning system
$ wp cron test
Success: WP-Cron spawning is working as expected.

Source code of the commands


wp cron test

Tests the WP Cron spawning system and reports back its status.

This command tests the spawning system by performing the following steps:

  • Checks to see if the DISABLE_WP_CRON constant is set; errors if true because WP-Cron is disabled.
  • Checks to see if the ALTERNATE_WP_CRON constant is set; warns if true.
  • Attempts to spawn WP-Cron over HTTP; warns if non 200 response code is returned.

Usage

wp cron test 

Examples

# Cron test runs successfully.
$ wp cron test
Success: WP-Cron spawning is working as expected.

wp cron event list

Lists scheduled cron events.

Usage

wp cron event list [--fields={fields}] [--{field}={value}] [--field={field}] [--format={format}]

You can specify global options and the following:

[--fields={fields}]
Limit the output to specific object fields.
[--{field}={value}]
Filter by one or more fields.
[--field={field}]
Prints the value of a single field for each event.
[--format={format}]

Render output in a particular format.
Default: table
Can be:

  • table
  • csv
  • ids
  • json
  • count
  • yaml

Available fields

These fields will be displayed by default for each cron event:

  • hook
  • next_run_gmt
  • next_run_relative
  • recurrence

These fields are optionally available:

  • time
  • sig
  • args
  • schedule
  • interval
  • next_run

Examples

# List scheduled cron events
$ wp cron event list
+-------------------+---------------------+---------------------+------------+
| hook              | next_run_gmt        | next_run_relative   | recurrence |
+-------------------+---------------------+---------------------+------------+
| wp_version_check  | 2016-05-31 22:15:13 | 11 hours 57 minutes | 12 hours   |
| wp_update_plugins | 2016-05-31 22:15:13 | 11 hours 57 minutes | 12 hours   |
| wp_update_themes  | 2016-05-31 22:15:14 | 11 hours 57 minutes | 12 hours   |
+-------------------+---------------------+---------------------+------------+
# List scheduled cron events in JSON
$ wp cron event list --fields=hook,next_run --format=json
[{"hook":"wp_version_check","next_run":"2016-05-31 10:15:13"},{"hook":"wp_update_plugins","next_run":"2016-05-31 10:15:13"},{"hook":"wp_update_themes","next_run":"2016-05-31 10:15:14"}]

wp cron event schedule

Schedules a new cron event.

Usage

wp cron event schedule {hook} [{next-run}] [{recurrence}] [--{field}={value}]

You can specify global options and the following:

{hook}
The hook name.
[{next-run}]
A Unix timestamp or an English textual datetime description compatible with strtotime(). Defaults to now.
[{recurrence}]
How often the event should recur. See wp cron schedule list for available schedule names. Defaults to no recurrence.
[--{field}={value}]
Associative args for the event.

Examples

# Schedule a new cron event
$ wp cron event schedule cron_test
Success: Scheduled event with hook 'cron_test' for 2016-05-31 10:19:16 GMT.
# Schedule new cron event with hourly recurrence
$ wp cron event schedule cron_test now hourly
Success: Scheduled event with hook 'cron_test' for 2016-05-31 10:20:32 GMT.
# Schedule new cron event and pass associative arguments
$ wp cron event schedule cron_test '+1 hour' --foo=1 --bar=2
Success: Scheduled event with hook 'cron_test' for 2016-05-31 11:21:35 GMT.

wp cron event run

Runs the next scheduled cron event for the given hook.

wp cron event run --due-now and wp cron event run --all are two different options for the wp cron event run command in WP-CLI, which allows you to run scheduled cron events manually.

wp cron event run --due-now will only run the cron events that are currently due to be run at the time the command is executed. This means that WP-CLI will check the scheduled cron events and only execute the ones that have a scheduled run time that is less than or equal to the current time.

wp cron event run --all will run all the scheduled cron events, regardless of whether they are due or not. This means that WP-CLI will execute all the scheduled events, even if some of them are not scheduled to run until a later time.

In general, it's a good idea to use wp cron event run --due-now instead of wp cron event run --all, as it ensures that you're only running the cron events that are currently needed, rather than executing unnecessary code. However, if you have a specific reason to run all the cron events, you can use the --all option.

Usage

wp cron event run [{hook}...] [--due-now] [--all]

You can specify global options and the following:

[{hook}...]
One or more hooks to run.
[--due-now]
Run all hooks due right now.
[--all]
Run all hooks.

Examples

# Run all cron events due right now
$ wp cron event run --due-now
Success: Executed a total of 2 cron events.

wp cron event unschedule

Unschedules all cron events for a given hook.

Usage

wp cron event unschedule {hook}

You can specify global options and the following:

{hook}
Name of the hook for which all events should be unscheduled.

Examples

# Unschedule a cron event on given hook.
$ wp cron event unschedule cron_test
Success: Unscheduled 2 events with hook 'cron_test'.

wp cron event delete

Deletes the next scheduled cron event for the given hook.

Usage

wp cron event delete {hook}

You can specify global options and the following:

{hook}
The hook name.

Examples

# Delete the next scheduled cron event
$ wp cron event delete cron_test
Success: Deleted 2 instances of the cron event 'cron_test'.

wp cron schedule list

List available cron schedules.

Usage

wp cron schedule list [--fields={fields}] [--field={field}] [--format={format}]

You can specify global options and the following:

[--fields={fields}]
Limit the output to specific object fields.
[--field={field}]
Prints the value of a single field for each schedule.
[--format={format}]

Render output in a particular format.
Default: table
Can be:

  • table
  • csv
  • ids
  • json
  • yaml

Available fields

These fields will be displayed by default for each cron schedule:

  • name
  • display
  • interval

There are no additional fields.

Examples

# List available cron schedules
$ wp cron schedule list
+------------+-------------+----------+
| name       | display     | interval |
+------------+-------------+----------+
| hourly     | Once Hourly | 3600     |
| twicedaily | Twice Daily | 43200    |
| daily      | Once Daily  | 86400    |
+------------+-------------+----------+
# List id of available cron schedule
$ wp cron schedule list --fields=name --format=ids
hourly twicedaily daily