Webmasterpark.ru - блог о продвижении и создании сайтов

Настройка задания в WordPress (WP Cron) для выполнения в назначенный интервал

10.02.2024

Чтобы настроить задание в WordPress (WP Cron) для выполнения , например, раз в сутки в 3 часа ночи нужно создать собственное событие cron. Вот пример кода, который нужно добавить в файл functions.php:

/ Регистрация события cron при активации темы или плагина
function my_activation() {
    if (!wp_next_scheduled('my_daily_event')) {
        // Запланировать первый запуск на 3:00 следующего дня
        $timestamp = strtotime('tomorrow 3:00') - (get_option('gmt_offset') * HOUR_IN_SECONDS);
        wp_schedule_event($timestamp, 'daily', 'my_daily_event');
    }
}
register_activation_hook(__FILE__, 'my_activation');

// Удаление события при деактивации темы или плагина
function my_deactivation() {
    wp_clear_scheduled_hook('my_daily_event');
}
register_deactivation_hook(__FILE__, 'my_deactivation');

// Добавление обработчика для вашего события
add_action('my_daily_event', 'do_this_daily');

// Функция, которая будет выполняться ежедневно
function do_this_daily() {
    // Ваш код здесь. Этот код будет выполняться ежедневно в 3 часа ночи.
}

Убедитесь, что вы замените ‘my_daily_event’ и ‘do_this_daily’ на более описательные имена, которые соответствуют функционалу, который вы хотите выполнить.
Функция wp_schedule_event принимает время в формате Unix timestamp. В приведенном выше коде расчет времени выполнения учитывает смещение времени WordPress (gmt_offset), чтобы правильно настроить время выполнения на 3:00 по местному времени.

Этот код следует добавить в функциональный плагин или файл functions.php темы. Если вы добавляете код непосредственно в тему, помните, что при смене темы код будет удален или неактивен.
Не забудьте активировать свою тему или плагин после добавления этого кода, чтобы register_activation_hook мог запланировать событие. Если вы обновляете существующую функцию, возможно, вам придется временно деактивировать и снова активировать плагин (или тему), чтобы обеспечить правильное планирование событий.

Обратите внимание, что WP Cron полагается на посещаемость сайта для активации событий. Если ваш сайт имеет низкую посещаемость, особенно в ночное время, выполнение задачи в точно запланированное время может быть не гарантировано. В таких случаях рассмотрите возможность использования реальной системы cron на сервере, которая может вызывать wp-cron.php через wget или curl.

Поделиться статьей

Напишите мне

info@webmasterpark.ru Или
Отправьте заявку на сотрудничество: