Запланированная публикация

Оригинальное название: 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

При таком запуске запись выйдет с точностью до интервала планировщика, даже если на сайте ночью нет посетителей. Для ручного контроля полезно знать и про статусы записи: запланированная запись в списке видна в отдельной вкладке.

Обновлено:

Все термины раздела «WordPress»

Что будем искать? Например,Продвижение