Как установить и настроить cron в WordPress: практическое руководство

WordPress использует систему событий под названием WP-Cron для планирования и выполнения запланированных задач, таких как публикация отложенных записей, проверка обновлений и выполнение периодических операций. Однако стандартный механизм WP-Cron иногда работает некорректно, особенно на сайтах с низкой посещаемостью. В этой статье мы подробно разберём, как правильно установить и настроить cron в WordPress, чтобы задачи выполнялись стабильно и эффективно.

Что такое WP-Cron и почему стоит настраивать системный cron

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

Это позволит выполнять задачи точно по расписанию, уменьшить нагрузку на сайт и избежать задержек. Ниже рассмотрим, как правильно это сделать.

Отключение WP-Cron

Для отключения WP-Cron откройте файл wp-config.php и добавьте следующий код перед строкой /* That's all, stop editing! Happy publishing. */:

define('DISABLE_WP_CRON', true);

Это отключит автоматический запуск WP-Cron при каждом запросе.

Настройка системного cron на сервере

Чтобы системный cron вызывал WP-Cron, нужно добавить соответствующее задание в crontab. Пример команды для выполнения каждые 15 минут:

*/15 * * * * wget -q -O - https://ваш-сайт.ru/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Или используя curl:

*/15 * * * * curl -s https://ваш-сайт.ru/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Если у вас нет доступа к crontab, можно использовать плагин WP Crontrol, который позволяет просматривать и управлять cron-задачами прямо в админке.

Проверка и управление cron-задачами через WP Crontrol

После установки и активации плагина перейдите в «Инструменты» > «Cron Events». Здесь вы увидите список запланированных задач, время их следующего запуска и можете создавать новые задачи или удалять ненужные.

WP Crontrol полезен для отладки, если задачи не выполняются должным образом.

Примеры создания и удаления cron-задач программно

Иногда нужно добавить собственные задачи для выполнения по расписанию. Рассмотрим пример создания cron-задачи с интервалом в 10 минут.

Добавление кастомного интервала для cron

add_filter('cron_schedules', 'wplist_add_cron_interval');
function wplist_add_cron_interval($schedules) {
    $schedules['every_ten_minutes'] = array(
        'interval' => 600, // 600 секунд = 10 минут
        'display' => __('Каждые 10 минут')
    );
    return $schedules;
}

Регистрация cron-задачи

function wplist_schedule_my_task() {
    if (!wp_next_scheduled('wplist_custom_cron_hook')) {
        wp_schedule_event(time(), 'every_ten_minutes', 'wplist_custom_cron_hook');
    }
}
add_action('wp', 'wplist_schedule_my_task');

Определение функции-обработчика задачи

add_action('wplist_custom_cron_hook', 'wplist_do_this_cron_job');
function wplist_do_this_cron_job() {
    // Ваш код, который будет выполняться каждые 10 минут
    error_log('Cron задача Wplist выполнена: ' . current_time('mysql'));
}

Такой подход позволяет запускать любые операции по расписанию — отправку писем, очистку кеша, обновление данных и др.

Решение распространённых проблем с WP-Cron

Cron-задачи не выполняются

Если cron-задачи не запускаются, проверьте следующие моменты:

  • В файле wp-config.php должна быть отключена автоматическая WP-Cron (если вы используете системный cron).
  • Проверьте, что системный cron действительно вызывает wp-cron.php (логи, вывод ошибок).
  • Убедитесь, что сайт доступен по HTTPS/HTTP, и нет блокировок на сервере.

Дублирование cron-задач

Иногда задачи могут выполняться несколько раз из-за неправильной регистрации. Для решения используйте функцию wp_next_scheduled, чтобы не создавать задачи повторно.

Плагины для расширенного управления cron в WordPress

Кроме WP Crontrol, есть другие полезные плагины:

  • Advanced Cron Manager — удобный интерфейс для поиска, редактирования и удаления cron-задач.
  • Cron Scheduler — позволяет создавать повторяющиеся задачи с гибкими параметрами.
  • Clearfy Pro (ссылка: https://wpshop.ru/plugins/clearfy-pro/) — помимо оптимизации, имеет функции управления планировщиком.

Заключение по настройке cron в WordPress

Правильная настройка cron — важный элемент стабильной работы любого WordPress-сайта. Системный cron обеспечит точное выполнение задач по расписанию, а плагины помогут контролировать и отлаживать процессы. Используйте приведённые в статье советы и примеры кода, чтобы автоматизировать рутинные операции и повысить надёжность вашего проекта.

Как создать собственный виджет в WordPress: пошаговое руководство с примерами
21.11.2025
Как удалить все старые метаданные в WordPress
09.02.2026
WooCommerce: автоматическое изменение статуса заказа при возврате товара
11.05.2026
Как добавить дополнительные роли и права в WordPress с примерами
20.01.2026
Как добавить дополнительные поля профиля пользователя в WordPress с примерами
02.01.2026