Не работает Cron (не публикуются отложенные записи, не создаются бекапы)

В WordPress есть встроенный планировщик задач, который фоном запускает различные задачи без вашего участия. Например: публикация отложенных или запланированных постов, создание бекапов. Встроенный Cron срабатывает при открытии любой страницы посетителями вашего сайта.

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

  1. Так как WP Cron работает от посетителей сайта — убедитесь, что сайт работает и на него заходят люди. Если сайт недоступен — встроенный Cron не будет срабатывать.
  2. Проверьте нет ли в файле wp-config.php строчки
    define('DISABLE_WP_CRON', true);

    Она блокирует работу встроенного планировщика. Некоторые хостеры добавляют ее по умолчанию. Если есть — удалите ее или замените true на false.

  3. Можно включить альтернативное выполнение Cron. Для этого добавьте в wp-config.php строчку
    define( 'ALTERNATE_WP_CRON', true );

    Проверьте после этого выполнение задач. В адрес страниц будет подставляться GET-параметр ?doing_wp_cron=, поэтому в robots.txt лучше добавить строчку Disallow: ?doing_wp_cron=

  4. Если у вас проблема с запланированными записями, можно попробовать плагин WP Missed Schedule Posts.
  5. Если ничего не помогло — можно использовать настоящий Cron на вашем хостинге. Для этого отключаем встроенный WP Cron добавлением строчки в wp-config.php
    define('DISABLE_WP_CRON', true);

    Настраиваем самостоятельно или пишем хостеру, что необходимо создать cron-задачу, раз в 5 минут загружать страницу https://вашдомен.ru/wp-cron.php?doing_wp_cron. После этого будет работать серверный планировщик, а не виртуальный.

Если вы добавляете записи с помощью парсинга или какой-то другой программы для автоматической публикации — создайте одну запись вручную, запланируйте ей время и проверьте публикацию. Часто такие программы и парсеры неправильно устанавливают время у записей и такие записи потом не публикуются на сайте.

Если способы выше не помогли — вы можете установить плагин WP Crontrol и посмотреть какие задачи висят и ждут выполнения. Возможно самих задач нет, возможно у них стоит неправильное время. В плагине есть возможность запустить задачи вручную, чтобы проверить как они отработают.