Как создать автоматический генератор временных постов в WordPress

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

Зачем нужен генератор временных постов в WordPress

Генератор временных постов полезен для разных задач:

  • Тестирование отображения архивов, ленты, виджетов с учетом даты публикации.
  • Отладка функционала, связанного с датами (например, отложенный постинг, автоматические рассылки, фильтрация по времени).
  • Наполнение демо-сайтов контентом для презентаций и проверки дизайна.
  • Анализ производительности при большом количестве публикаций.

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

Как создать генератор временных постов: пошаговое руководство

Шаг 1. Создаем пользовательскую функцию для генерации постов

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

function wpgpt_create_temporary_post($title, $content, $post_date) {
    $post_data = array(
        'post_title'   => $title,
        'post_content' => $content,
        'post_status'  => 'publish',
        'post_author'  => 1, // ID автора, измените при необходимости
        'post_date'    => $post_date,
        'post_type'    => 'post'
    );

    $post_id = wp_insert_post($post_data);
    return $post_id;
}

Эта функция принимает заголовок, содержимое и дату публикации, создает пост и возвращает его ID. Используем стандартную функцию wp_insert_post с параметром post_date, чтобы задать дату публикации явно.

Шаг 2. Автоматическая генерация множества постов с разными датами

Теперь создадим функцию, которая вызовет предыдущую в цикле и сгенерирует, например, 30 постов с датами за последние 30 дней.

function wpgpt_generate_temporary_posts_batch($count = 30) {
    for ($i = 0; $i < $count; $i++) {
        $date = date('Y-m-d H:i:s', strtotime("-{$i} days"));
        $title = "Тестовый пост №" . ($i + 1);
        $content = "Это автоматически сгенерированный тестовый пост для даты " . $date . ".";
        wpgpt_create_temporary_post($title, $content, $date);
    }
}

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

Как вызвать генератор через WP-CLI

Если у вас есть доступ к консоли сервера, удобнее всего запускать генератор через WP-CLI, чтобы не создавать лишних кнопок в админке. Для этого создадим кастомную команду:

if (defined('WP_CLI') && WP_CLI) {
    WP_CLI::add_command('wpgpt_generate_posts', function($args, $assoc_args) {
        $count = isset($assoc_args['count']) ? intval($assoc_args['count']) : 30;
        wpgpt_generate_temporary_posts_batch($count);
        WP_CLI::success("Создано {$count} временных постов.");
    });
}

Теперь в консоли можно выполнить wp wpgpt_generate_posts --count=50 для создания 50 постов.

Оптимизация и безопасность при массовом создании постов

При генерации большого количества записей учитывайте следующие моменты:

  • Запускайте генерацию в нерабочее время или на тестовом сервере, чтобы не нагружать продакшен.
  • Добавьте проверку прав пользователя, если запускаете из админки.
  • Используйте транзакции или batch-обработку, если нужно создать тысячи постов.
  • Удаляйте тестовые записи после отладки, чтобы не засорять базу.

Пример плагина для удобного управления генерацией постов

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

add_action('admin_menu', function() {
    add_submenu_page('tools.php', 'Генератор постов WPGPT', 'Генератор постов', 'manage_options', 'wpgpt-post-generator', 'wpgpt_post_generator_page');
});

function wpgpt_post_generator_page() {
    if (!current_user_can('manage_options')) {
        wp_die('Доступ запрещен');
    }

    if (isset($_POST['wpgpt_generate'])) {
        $count = intval($_POST['wpgpt_count']);
        wpgpt_generate_temporary_posts_batch($count);
        echo '<div class="updated notice">Создано ' . esc_html($count) . ' постов.</div>';
    }

    echo '<div class="wrap"><h1>Генератор временных постов</h1>';
    echo '<form method="post">';
    echo '<label>Количество постов: <input type="number" name="wpgpt_count" value="30" min="1" max="1000" /></label><br>';
    echo '<input type="submit" name="wpgpt_generate" class="button button-primary" value="Создать" />';
    echo '</form></div>';
}

Этот простой интерфейс позволит запускать генерацию прямо из админки без доступа к консоли.

Дополнительные возможности: генерация с кастомными полями и категориями

Для более сложных сценариев можно расширить функцию генерации, добавив:

  • Присвоение случайных категорий и меток.
  • Установка кастомных полей (например, для тестирования плагинов типа Clearfy Pro или Expert Review).
  • Генерацию пользовательских типов записей.

Пример добавления категории и меток к посту:

function wpgpt_create_temporary_post_extended($title, $content, $post_date, $categories = [], $tags = []) {
    $post_data = array(
        'post_title'   => $title,
        'post_content' => $content,
        'post_status'  => 'publish',
        'post_author'  => 1,
        'post_date'    => $post_date,
        'post_type'    => 'post'
    );

    $post_id = wp_insert_post($post_data);

    if ($post_id && !is_wp_error($post_id)) {
        if (!empty($categories)) {
            wp_set_post_categories($post_id, $categories);
        }
        if (!empty($tags)) {
            wp_set_post_tags($post_id, $tags);
        }
    }

    return $post_id;
}

Заключение

Автоматический генератор временных постов — мощный инструмент для разработчиков и тестировщиков WordPress. Он позволяет быстро создавать реальный контент с разными датами публикации, что облегчает отладку и демонстрацию сайтов. При необходимости вы можете расширить функционал генератора, интегрировать его с WP-CLI или админ-панелью, а также добавлять кастомные поля и таксономии.

Для скачивания готовых решений и плагинов, которые помогут с подобными задачами, рекомендую посетить WPShop.ru.

Как создать автоматический генератор подсказок в WordPress с помощью WPGPT
10.03.2026
Как создать автоматический генератор метаданных для постов в WordPress
20.01.2026
Интеграция GPT в WordPress для автоматизации создания контента
15.12.2025
Как добавить произвольные поля в REST API WordPress
30.11.2025
Автоматическое создание контактной формы с помощью WordPress хуков
22.11.2025