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