Часто при работе с WordPress и Elementor возникает задача быстро создавать копии страниц для дальнейшего редактирования под разные цели, сохраняя при этом структуру и стили. В этом материале разберём, как реализовать автоматическое дублирование страниц, созданных в Elementor, используя готовые плагины и кастомный PHP-код. Это позволит ускорить рабочий процесс и избежать рутинных операций.
Зачем нужно дублировать страницы в Elementor
Дублирование страниц полезно при создании лендингов с похожей структурой, тестировании вариантов дизайна, подготовке шаблонов для разных продуктов или услуг. Вместо того, чтобы вручную создавать новую страницу и заново настраивать каждый блок, вы можете быстро клонировать существующую.
Особенно важна корректная работа с Elementor, поскольку он сохраняет данные страницы в метаполях, и обычные методы копирования не всегда сохраняют все настройки и стили.
Рассмотрим несколько способов решения задачи — с помощью плагинов и кастомного кода.
Использование плагинов для дублирования страниц с Elementor
1. Плагин Duplicate Post (Yoast Duplicate Post)
Один из самых популярных бесплатных плагинов для копирования постов и страниц. Поддерживает полное клонирование, включая метаданные Elementor.
После установки и активации у вас появится опция «Клонировать» в списке страниц. При нажатии создаётся точная копия, которую можно сразу редактировать.
Плюсы: просто и быстро, бесплатный и надёжный.
Минусы: не автоматизирует процесс, требует ручного клонирования.
2. Плагин WP Staging
Этот плагин позволяет создавать копии сайта или отдельных страниц для тестирования. Можно использовать для клонирования и редактирования страниц в отдельной среде.
Подходит, если необходимо сделать масштабное дублирование с безопасностью, но немного сложнее в настройке.
3. Плагин WPS Duplicate Page
Специализированный плагин для быстрого дублирования страниц. Поддерживает Elementor и другие конструкторы. После установки добавляет кнопку «Duplicate This» в списке страниц.
Поддерживает настройку статуса новой страницы (черновик, опубликовано).
Автоматизация дублирования страниц с помощью кода
Если нужно создавать копии автоматически при выполнении определённых условий, например, при публикации страницы, можно добавить кастомный PHP код в functions.php вашей темы или в плагин для кастомных функций.
Ниже пример функции, которая создаёт копию страницы с суффиксом " - копия" при её публикации:
function wpelementor_duplicate_page_on_publish( $post_id ) {
// Проверяем, что это страница
if ( get_post_type( $post_id ) != 'page' ) {
return;
}
// Получаем объект страницы
$post = get_post( $post_id );
// Создаём массив для новой страницы
$new_post = array(
'post_title' => $post->post_title . ' - копия',
'post_content' => $post->post_content,
'post_status' => 'draft',
'post_type' => 'page',
'post_author' => $post->post_author,
'post_parent' => $post->post_parent,
);
// Вставляем новую страницу
$new_post_id = wp_insert_post( $new_post );
if ( is_wp_error( $new_post_id ) ) {
return;
}
// Копируем метаданные Elementor
$meta_keys = [ '_elementor_data', '_elementor_edit_mode', '_elementor_version', '_elementor_template_type' ];
foreach ( $meta_keys as $key ) {
$value = get_post_meta( $post_id, $key, true );
if ( $value ) {
update_post_meta( $new_post_id, $key, $value );
}
}
}
add_action( 'publish_page', 'wpelementor_duplicate_page_on_publish' );Этот код слушает событие публикации страницы, создаёт её черновик-копию и переносит в неё основные метаданные Elementor, чтобы сохранить дизайн и структуру.
Можно модифицировать функцию для дублирования по запросу пользователя через AJAX или для других типов постов.
Как расширить функционал дублирования для кастомных типов записей и шаблонов Elementor
Если вы используете кастомные типы записей в WordPress и хотите дублировать их с сохранением Elementor, стоит расширить список метаданных и учесть особенности CPT.
Пример расширения функции для CPT "portfolio":
function wpelementor_duplicate_cpt_with_elementor( $post_id ) {
$post_type = get_post_type( $post_id );
if ( ! in_array( $post_type, ['page', 'portfolio'] ) ) {
return;
}
$post = get_post( $post_id );
$new_post = array(
'post_title' => $post->post_title . ' - копия',
'post_content' => $post->post_content,
'post_status' => 'draft',
'post_type' => $post_type,
'post_author' => $post->post_author,
'post_parent' => $post->post_parent,
);
$new_post_id = wp_insert_post( $new_post );
if ( is_wp_error( $new_post_id ) ) {
return;
}
$meta_keys = [ '_elementor_data', '_elementor_edit_mode', '_elementor_version', '_elementor_template_type' ];
foreach ( $meta_keys as $key ) {
$value = get_post_meta( $post_id, $key, true );
if ( $value ) {
update_post_meta( $new_post_id, $key, $value );
}
}
// Копируем все остальные метаданные
$all_meta = get_post_meta( $post_id );
foreach ( $all_meta as $meta_key => $meta_values ) {
if ( in_array( $meta_key, $meta_keys ) ) continue;
foreach ( $meta_values as $meta_value ) {
add_post_meta( $new_post_id, $meta_key, maybe_unserialize( $meta_value ) );
}
}
}
add_action( 'save_post', 'wpelementor_duplicate_cpt_with_elementor' );Такой подход позволяет создавать полноценные копии страниц и других записей, полностью готовые для редактирования в Elementor.
Практические советы по работе с дублированием страниц в Elementor
- Всегда делайте резервные копии сайта перед запуском автоматического дублирования, чтобы избежать потери данных.
- Используйте плагины с проверенной репутацией, чтобы не столкнуться с несовместимостью с Elementor.
- Настраивайте права доступа для пользователей, которым разрешено клонировать страницы, чтобы не создавать лишних дубликатов.
- Тестируйте созданные копии, проверяйте корректность отображения и работоспособность всех виджетов.
Для удобной работы с дублированием можно рассмотреть плагин Clearfy Pro — он содержит расширенные инструменты оптимизации и управления сайтом, включая удобные функции по работе с дубликатами.
Заключение
Автоматическое дублирование страниц в WordPress с Elementor — мощный инструмент для разработчиков и владельцев сайтов. Используя плагины или кастомный код, вы можете значительно экономить время и создавать новые страницы на базе уже готовых шаблонов. Главное — тщательно тестировать и учитывать особенности вашего сайта.
Если ищете готовые решения и качественные инструменты для оптимизации WordPress, рекомендуем ознакомиться с продуктами на WPSHOP.RU.