Как отложить публикацию постов в WordPress

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

Почему важна отложенная публикация: задачи и преимущества

Отложенная публикация помогает:

  • Планировать контент заранее и поддерживать постоянный график публикаций.
  • Автоматизировать выход материалов в нужное время без ручного вмешательства.
  • Согласовывать публикации в команде редакторов.
  • Избегать ошибок публикации в неподходящее время.

Для владельцев новостных и тематических сайтов (например, на wpnews.ru) это особенно важно — новости или обзоры должны выходить своевременно, а редакторы могут не быть онлайн в момент публикации.

Использование стандартных возможностей WordPress для отложенной публикации

WordPress изначально поддерживает отложенную публикацию. При создании или редактировании записи в блоке «Опубликовать» можно выбрать дату и время публикации. Однако этот функционал ограничен:

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

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

Плагины для расширенной отложенной публикации и планирования контента

1. Schedule Posts Calendar

Плагин добавляет удобный календарь, в котором можно видеть и управлять всеми запланированными публикациями. Поддерживает быстрое изменение даты и времени публикации с помощью drag-and-drop.

Скачать Schedule Posts Calendar

2. Editorial Calendar

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

Скачать Editorial Calendar

3. WP Scheduled Posts

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

Плагин доступен в бесплатной версии и Pro с дополнительными возможностями.

Скачать WP Scheduled Posts

Как написать собственную функцию для отложенной публикации в WordPress

Рассмотрим пример минимальной реализации отложенной публикации через собственный код. В этом случае мы создадим функцию, которая позволит программно установить дату публикации поста, а также реализуем простой крон-задачу, которая будет публиковать посты в нужное время.

Шаг 1. Установка даты публикации программно

Для создания или обновления поста с отложенной датой используем функцию wpnews_set_post_schedule:

function wpnews_set_post_schedule($post_id, $datetime) {
    // $datetime — строка формата 'Y-m-d H:i:s'
    $post_data = array(
        'ID' => $post_id,
        'post_status' => 'future', // статус "запланировано"
        'post_date' => $datetime,
        'post_date_gmt' => get_gmt_from_date($datetime),
    );
    wp_update_post($post_data);
}

Использование:

$post_id = 123;
$publish_time = '2024-07-01 10:00:00';
wpnews_set_post_schedule($post_id, $publish_time);

Эта функция переведёт пост в статус "будущая публикация" с назначенной датой.

Шаг 2. Создание крон-задачи для проверки и публикации постов

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

function wpnews_publish_scheduled_posts() {
    $args = array(
        'post_status' => 'future',
        'post_type' => 'post',
        'date_query' => array(
            array('before' => current_time('mysql'))
        ),
        'fields' => 'ids',
        'posts_per_page' => 10,
    );

    $posts = get_posts($args);
    foreach ($posts as $post_id) {
        // Меняем статус на 'publish'
        $post = array(
            'ID' => $post_id,
            'post_status' => 'publish'
        );
        wp_update_post($post);
    }
}

// Регистрируем событие, если оно не зарегистрировано
if (!wp_next_scheduled('wpnews_cron_publish')) {
    wp_schedule_event(time(), 'hourly', 'wpnews_cron_publish');
}

add_action('wpnews_cron_publish', 'wpnews_publish_scheduled_posts');

Этот код проверяет все отложенные публикации с датой меньше текущей и переводит их в статус "опубликовано".

Управление очередью отложенных публикаций и уведомления

Для сайтов с большими объёмами контента важно не только отложить публикацию, но и иметь удобные инструменты для управления очередью. Плагины, рассмотренные выше, предоставляют такие возможности. Также можно добавить уведомления редакторам по email о предстоящих публикациях:

function wpnews_notify_before_publish() {
    $args = array(
        'post_status' => 'future',
        'post_type' => 'post',
        'date_query' => array(
            array(
                'after' => date('Y-m-d H:i:s', strtotime('+1 hour', current_time('timestamp'))),
                'before' => date('Y-m-d H:i:s', strtotime('+2 hours', current_time('timestamp'))),
                'inclusive' => true,
            )
        ),
        'fields' => 'ids',
    );

    $posts = get_posts($args);
    if (!empty($posts)) {
        $message = "Публикации, запланированные на ближайший час:\n";
        foreach ($posts as $post_id) {
            $post = get_post($post_id);
            $message .= $post->post_title . " - " . get_permalink($post_id) . "\n";
        }
        wp_mail('editor@example.com', 'Предстоящие публикации', $message);
    }
}
add_action('wpnews_cron_publish', 'wpnews_notify_before_publish');

Вы можете заменить email на адрес редактора или использовать динамическую рассылку.

Интеграция с плагином Clearfy Pro для оптимизации публикаций

Если у вас установлен Clearfy Pro, вы можете дополнительно оптимизировать процесс публикации, используя встроенные инструменты для управления задачами и автоматизации.

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

Итоговые рекомендации по отложенной публикации в WordPress

Для большинства пользователей базового функционала WordPress будет достаточно. Если вам нужна удобная визуальная очередь — выбирайте плагины Editorial Calendar или WP Scheduled Posts.

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

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

Как удалить кэш в WordPress: пошаговое руководство
01.02.2026
Как создать поддержку многоязычности в WordPress без плагинов
18.11.2025
Как отключить XML-RPC в WordPress для повышения безопасности
02.01.2026
Оптимизация базы данных WordPress: удаляем старые ревизии и чистим базу
15.11.2025
Как создать подробный лог для отладки в WordPress
21.11.2025