Как использовать WP-Cron для автоматизации задач в WordPress

|

Что такое WP-Cron и зачем он нужен в WordPress

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

Типичные задачи для WP-Cron: отправка рассылок, очистка базы данных, публикация отложенных записей, обновление кэша и многое другое.

Диагностика проблем с WP-Cron

Часто WP-Cron перестаёт работать или срабатывает с задержками. Основные признаки:

Как проверить состояние WP-Cron:

define('DISABLE_WP_CRON', false); // В wp-config.php, проверьте, что cron не отключён

// Просмотр всех запланированных задач с помощью WP-CLI
wp cron event list

Если команда wp cron event list не показывает задачи, значит планировщик не работает или задачи не добавлены.

Пошаговое решение: корректная настройка и отладка WP-Cron

1. Проверка и отключение системного планировщика

Если на сервере настроен системный cron для запуска WP-Cron, рекомендуется отключить встроенный запуск и настроить системный для стабильности.

// В wp-config.php
// Отключаем встроенный запуск WP-Cron
define('DISABLE_WP_CRON', true);

Затем в crontab добавить задачу (пример для запуска каждые 15 минут):

*/15 * * * * wget -q -O - 'https://example.com/wp-cron.php?doing_wp_cron' >/dev/null 2>&1

2. Проверка добавления задач в WP-Cron

Для добавления пользовательской задачи используется функция wp_schedule_event(). Пример добавления задачи для ежедневного запуска:

function wporg_custom_cron_job() {
    // Ваш код задачи
    error_log('Custom cron job executed');
}

add_action('wporg_daily_event', 'wporg_custom_cron_job');

function wporg_schedule_cron() {
    if (!wp_next_scheduled('wporg_daily_event')) {
        wp_schedule_event(time(), 'daily', 'wporg_daily_event');
    }
}
add_action('wp', 'wporg_schedule_cron');

Обратите внимание, что задача добавляется при каждом заходе на сайт, но с проверкой, чтобы не дублировать.

3. Отладка через логирование и WP-CLI

Для проверки срабатывания задачи можно использовать логирование через error_log() или создавать записи в базе данных.

WP-CLI позволяет запускать cron вручную:

wp cron event run --due-now

Проверка результата после внедрения

Чтобы убедиться, что WP-Cron работает корректно:

Частые ошибки и их устранение

Ошибка 1: Задачи не запускаются из-за кеширования

Некоторые кеширующие плагины или CDN блокируют запуск cron при загрузке страниц. Решение — отключить кеширование для wp-cron.php или настроить системный cron.

Ошибка 2: Множественное дублирование задач

Если не проверять наличие задачи перед планированием, может создаваться множество одинаковых задач. Всегда используйте wp_next_scheduled().

Ошибка 3: Отключён WP-Cron в wp-config.php

Проверьте наличие константы DISABLE_WP_CRON и её значение.

Практические советы по безопасности и производительности

Сравнение вариантов запуска WP-Cron

МетодПлюсыМинусыРекомендации
Встроенный WP-CronНе требует настройки сервера, прост в использованииЗависит от посещаемости сайта, возможна задержкаПодходит для небольших сайтов с достаточным трафиком
Системный cronТочный запуск по расписанию, не зависит от трафикаТребует доступа к серверу и базовых знаний LinuxРекомендуется для производственных и крупных сайтов
Как автоматизировать очистку кеша в WordPress: практические примеры и решения
25.03.2026
Как найти и устранить canonical-ошибки в WordPress
29.08.2026
Как удалить метаданные и оптимизировать базу данных WordPress: практические решения
21.12.2025
Автоматическое удаление неиспользуемых мета данных в WordPress: практические решения и примеры кода
12.03.2026
Как ограничить загрузку файлов в WordPress по типу и размеру
13.08.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше