Запланированная публикация
Оригинальное название: scheduled post
Коротко
Запись с датой в будущем: WordPress держит её в статусе «Запланировано» и публикует сам, когда наступит назначенное время.
Что такое «Запланированная публикация»
Чтобы отложить выход материала, достаточно в боковой панели редактора сменить «Сразу» на нужную дату и время. Кнопка «Опубликовать» превратится в «Запланировать», запись получит статус future и не будет видна посетителям. Так готовят серию постов заранее, приурочивают анонс к началу акции или выпускают новость ровно в момент пресс-релиза.
Как WordPress выпускает запись
Отдельного процесса, следящего за часами, у WordPress нет. В момент планирования ядро ставит одноразовую задачу publish_future_post в очередь WP-Cron. Очередь проверяется при обращениях к сайту: когда после назначенного времени кто-то откроет страницу, задача выполнится и запись станет опубликованной. Время сравнивается по часовому поясу из «Настроек → Общие», при этом в базе хранятся и местная дата, и дата в UTC.
Почему публикация «пропустила расписание»
В списке записей иногда появляется пометка о пропущенном расписании: время прошло, а материал всё ещё не вышел. Частые причины:
- на сайт долго никто не заходил, и WP-Cron просто не запускался;
- в
wp-config.phpвключеноDISABLE_WP_CRON, а системный планировщик на сервере не настроен; - сервер не может обратиться сам к себе по HTTP — мешают закрытый доступ, защита от ботов или неверный DNS;
- часовой пояс в настройках не совпадает с ожидаемым, и запись выйдет на несколько часов позже.
Как сделать выход надёжным
Надёжная схема — отключить запуск по посещениям и вызывать очередь системным cron каждые несколько минут. На своих серверах я делаю именно так. В wp-config.php:
define( 'DISABLE_WP_CRON', true );
В crontab пользователя сайта — запуск очереди каждые пять минут, а для проверки — список задач и запланированных записей:
*/5 * * * * wp --path=/var/www/site cron event run --due-now
wp cron event list
wp post list --post_status=future
При таком запуске запись выйдет с точностью до интервала планировщика, даже если на сайте ночью нет посетителей. Для ручного контроля полезно знать и про статусы записи: запланированная запись в списке видна в отдельной вкладке.

