wp_schedule_event
Функция wp_schedule_event()
в WordPress используется для создания периодических задач с кроном (cron-задач). Данный функционал WordPress позволяет выполнять код автоматически через определённые интервалы времени без необходимости вмешательства пользователя.
Синтаксис
wp_schedule_event( $timestamp, $recurrence, $hook, $args = array(), $wp_error = false );
Аргументы
$timestamp
(int, обязательный) — Временная метка (Unix timestamp) первой активации события.$recurrence
(string, обязательный) — Частота выполнения. Должно соответствовать зарегистрированным интервалам (hourly
,twicedaily
,daily
и т. д.).$hook
(string, обязательный) — Название хука, который будет срабатывать по расписанию.$args
(array, необязательный) — Массив аргументов, передаваемых в функцию-хук (по умолчаниюarray()
— пустой массив).$wp_error
(bool, необязательный,false
по умолчанию) — Еслиtrue
, функция вернётWP_Error
в случае ошибки, иначеfalse
.
Как работает wp_schedule_event()
?
- Функция
wp_schedule_event()
добавляет новое задание в системный крон WordPress для автоматического выполнения. - При наступлении
$timestamp
времени выполнения WordPress активирует указанный хук$hook
и задача отрабатывает в автоматическом режиме. - Этот хук можно использовать для выполнения своего кода и функций (например, очистки базы данных, отправки email, обновления записей и т. д.).
Пример использования
Пример 1: Запуск задачи раз в день
Этот код создаёт задание my_custom_cron_hook
, которое выполняется ежедневно.
Пример 2: Создание кастомного интервала (например, раз в 5 минут)
WordPress по умолчанию поддерживает hourly
, twicedaily
и daily
, но можно добавить свои интервалы.
Теперь задание my_custom_cron_hook
будет выполняться каждые 5 минут.
Как удалить крон-задачу
Чтобы удалить запланированную задачу, используйте wp_unschedule_event()
:
$timestamp = wp_next_scheduled( 'my_custom_cron_hook' );
if ( $timestamp ) {
wp_unschedule_event( $timestamp, 'my_custom_cron_hook' );
}
Этот код удаляет задачу my_custom_cron_hook
, если она была запланирована.
Функция wp_schedule_event()
позволяет автоматизировать задачи в WordPress, такие как обновление данных, очистка кеша, отправка email и многое другое. Использование кастомных интервалов и хуков делает эту систему гибкой и мощной.
Важно:
- WordPress Cron не является реальным cron-планировщиком, а срабатывает только при посещениях сайта. Для точного выполнения задач используйте серверный cron job.
- Проверяйте, не дублируются ли задачи, перед их регистрацией с помощью
wp_next_scheduled()
.