Автоматическое создание копий постов в WordPress

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

Почему полезно создавать копии постов автоматически

Создание копий вручную через админ-панель WordPress — это долго и неудобно, особенно если требуется массовое дублирование или автоматизация в рамках бизнес-процессов. Автоматизация позволяет:

  • Экономить время при подготовке новых статей на основе шаблонов;
  • Избегать ошибок копирования контента, метаданных и таксономий;
  • Легко создавать резервные копии материалов перед массовыми изменениями;
  • Настраивать автоматическое создание черновиков для дальнейшей доработки.

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

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

Среди популярных и проверенных решений выделим следующие плагины:

  • Duplicate Post — классика для копирования записей с настройками по умолчанию. Позволяет быстро дублировать посты, страницы и кастомные типы записей прямо из списка материалов.
  • Post Duplicator — простой и легкий плагин с опцией копирования таксономий и метаданных.
  • WP Content Copy Protection & No Right Click — не только дублирование, но и защита контента от копирования, полезен если нужно дублировать и при этом ограничить доступ.

Все эти плагины легко установить и настроить через админ-панель WordPress. Однако для более тонкой автоматизации и интеграции с бизнес-логикой лучше использовать собственный код.

Как создать функцию автоматического дублирования поста в WordPress

Ниже приведен пример функции с префиксом wpcodex_, которая дублирует пост по ID и возвращает ID нового поста. Функция копирует контент, заголовок, статус, метаданные и таксономии.

function wpcodex_duplicate_post_by_id($post_id) {
    $post = get_post($post_id);
    if (null === $post) return 0;

    $new_post = array(
        'post_title'    => $post->post_title . ' (копия)',
        'post_content'  => $post->post_content,
        'post_status'   => 'draft',
        'post_type'     => $post->post_type,
        'post_author'   => get_current_user_id(),
        'post_excerpt'  => $post->post_excerpt
    );

    // Вставляем новый пост и получаем ID
    $new_post_id = wp_insert_post($new_post);
    if ($new_post_id == 0) return 0;

    // Копируем метаданные
    $post_meta = get_post_meta($post_id);
    foreach ($post_meta as $key => $values) {
        foreach ($values as $value) {
            add_post_meta($new_post_id, $key, maybe_unserialize($value));
        }
    }

    // Копируем таксономии
    $taxonomies = get_object_taxonomies($post->post_type);
    foreach ($taxonomies as $taxonomy) {
        $terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'ids'));
        wp_set_object_terms($new_post_id, $terms, $taxonomy);
    }

    return $new_post_id;
}

Эту функцию можно вызывать из админки или привязать к AJAX-запросу для удобства. Например, чтобы создать копию поста с ID 123, достаточно вызвать:

$new_post_id = wpcodex_duplicate_post_by_id(123);
if ($new_post_id) {
    echo 'Копия создана, ID: ' . $new_post_id;
} else {
    echo 'Ошибка при создании копии';
}

Автоматическое дублирование при сохранении поста

Можно настроить автоматическое создание копии при каждом сохранении поста — например, для резервного хранения предыдущей версии. Для этого добавим хук save_post:

function wpcodex_auto_duplicate_on_save($post_id) {
    // Избегаем бесконечной петли
    remove_action('save_post', 'wpcodex_auto_duplicate_on_save');

    // Копируем пост
    $copy_id = wpcodex_duplicate_post_by_id($post_id);

    // Можно здесь добавить логирование или уведомление

    // Возвращаем хук
    add_action('save_post', 'wpcodex_auto_duplicate_on_save');
}
add_action('save_post', 'wpcodex_auto_duplicate_on_save');

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

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

При массовом дублировании важно контролировать нагрузку на сервер и базу данных. Советую:

  • Использовать транзакции или отложенные задачи через WP Cron для больших объемов;
  • Ограничивать права на запуск дублирования — только для администраторов или редакторов;
  • Проверять входные данные и избегать дублирования без необходимости;
  • Периодически очищать старые копии, если они создаются автоматически.

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

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

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

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

Выводы

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

Создание автоматического ответа на отзывы в WordPress с AJAX
25.01.2026
Автоматическое отменение неоплаченных заказов в WooCommerce
03.05.2026
Как удалить ревизии постов в WordPress для очистки базы данных
11.12.2025
WooCommerce: автоматическое обновление статуса заказа после успешной оплаты
14.05.2026
Как удалить неиспользуемые метаданные в WordPress для оптимизации базы данных
23.03.2026