Как сделать дубликат страницы или поста в WordPress

Опубликовано: 2023-02-12

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

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

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

Оглавление
1. Легко клонируйте страницу в WordPress с помощью этих плагинов
1.1. 1. Дублировать пост
1.2. 2. Дублируйте страницу и пост
1.3. 3. Дублировать страницу
1.4. 4. Почтовый дубликатор
2. Дублирование страницы в WordPress без плагина
2.1. 1. Включите клонирование с помощью кода funtions.php
2.2. 2. Вручную скопируйте и вставьте код для дублирования страницы
3. Продолжайте учиться с WP Engine

Легко клонируйте страницу в WordPress с помощью этих плагинов

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

Если вы ищете подходящий инструмент, вот четыре плагина, на которые стоит обратить внимание.

1. Дублировать пост

Одним из популярных вариантов клонирования страниц и сообщений WordPress является Duplicate Post. Этот популярный плагин прост в использовании и клонирует все, от содержимого страницы или сообщения до связанных комментариев. Он также предлагает вариант префикса или суффикса, чтобы отличить исходный пост от клона.

Чтобы дублировать запись WordPress с помощью этого инструмента, вам просто нужно:

  1. Установите и активируйте плагин.
  2. На панели инструментов WordPress перейдите в «Сообщения » > «Все» при клонировании сообщений или «Страницы» > «Все» при клонировании страниц.
  3. Перейдите к исходной странице или сообщению, которое вы хотите скопировать, и нажмите «Клонировать» , чтобы продублировать его.
  4. Можно выбрать несколько страниц или сообщений, и вы можете клонировать их все сразу, используя массовые действия .

2. Дублируйте страницу и пост

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

Чтобы клонировать страницу или сообщение с помощью этого плагина, выполните следующие действия:

  1. Установите и активируйте плагин.
  2. Перейдите в «Сообщения» > «Все» или «Страницы » > «Все » в зависимости от того, что вы хотите продублировать.
  3. Наведите указатель мыши на страницу или публикацию, которую хотите клонировать.
  4. Нажмите на опцию Дублировать .

3. Дублировать страницу

Duplicate Page предлагает несколько дополнительных функций, которых нет в некоторых других плагинах для клонирования. Этот плагин будет дублировать сообщения, страницы и пользовательские типы сообщений. Кроме того, вы можете сохранять полученные копии как черновики, ожидающие рассмотрения, общедоступные или частные.

Чтобы использовать дубликат страницы, вам просто нужно:

  1. Установите и активируйте плагин.
  2. Настройте его параметры в соответствии с вашими потребностями.
  3. Перейдите в Страницы > Все или Записи > Все , чтобы найти контент, который вы хотите продублировать.
  4. Нажмите на опцию «Дублировать эту» .

4. Почтовый дубликатор

Еще один простой плагин для клонирования — Post Duplicator. Это решение создает точную копию любого сообщения или страницы, включая настраиваемые типы сообщений, настраиваемые поля и настраиваемые таксономии. Он быстрый и простой в использовании, и не должен сильно увеличивать вес вашего сайта.

Чтобы дублировать контент с помощью этого инструмента, выполните следующие действия:

  1. Установите плагин и активируйте его.
  2. Перейдите к «Сообщения» > «Все» или «Страницы »> «Все» , чтобы найти контент, который вы хотите клонировать.
  3. Наведите курсор на публикацию или страницу.
  4. Нажмите на кнопку «Дублировать страницу» или «Дублировать сообщение» .

Дублирование страницы в WordPress без плагина

Конечно, вам не нужно использовать плагин для клонирования страницы или публикации в WordPress. Это также можно сделать вручную, либо отредактировав файл funtions.php , либо скопировав и вставив соответствующий код. Давайте посмотрим, как работают оба метода.

1. Включите клонирование с помощью кода funtions.php

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

Чтобы включить клонирование сообщений, вам необходимо получить доступ к файлу functions.php и открыть его для редактирования, используя безопасный протокол передачи файлов (FTP) или любой другой метод, который вы предпочитаете. Затем вам нужно будет добавить следующий фрагмент кода в конец файла:

/*
* Function for post duplication. Dups appear as drafts. User is redirected to the edit screen
*/
function rd_duplicate_post_as_draft(){
global $wpdb;
if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) {
wp_die('No post to duplicate has been supplied!');
}
/*
* Nonce verification
*/
if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) )
return;
/*
* get the original post id
*/
$post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
/*
* and all the original post data then
*/
$post = get_post( $post_id );
/*
* if you don't want current user to be the new post author,
* then change next couple of lines to this: $new_post_author = $post->post_author;
*/
$current_user = wp_get_current_user();
$new_post_author = $current_user->ID;
/*
* if post data exists, create the post duplicate
*/
if (isset( $post ) && $post != null) {
/*
* new post data array
*/
$args = array(
'comment_status' => $post->comment_status,
'ping_status' => $post->ping_status,
'post_author' => $new_post_author,
'post_content' => $post->post_content,
'post_excerpt' => $post->post_excerpt,
'post_name' => $post->post_name,
'post_parent' => $post->post_parent,
'post_password' => $post->post_password,
'post_status' => 'draft',
'post_title' => $post->post_title,
'post_type' => $post->post_type,
'to_ping' => $post->to_ping,
'menu_order' => $post->menu_order
);
/*
* insert the post by wp_insert_post() function
*/
$new_post_id = wp_insert_post( $args );
/*
* get all current post terms ad set them to the new post draft
*/
$taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array("category", "post_tag");
foreach ($taxonomies as $taxonomy) {
$post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs'));
wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
}
/*
* duplicate all post meta just in two SQL queries
*/
$post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
if (count($post_meta_infos)!=0) {
$sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
foreach ($post_meta_infos as $meta_info) {
$meta_key = $meta_info->meta_key;
if( $meta_key == '_wp_old_slug' ) continue;
$meta_value = addslashes($meta_info->meta_value);
$sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
}
$sql_query.= implode(" UNION ALL ", $sql_query_sel);
$wpdb->query($sql_query);
}
/*
* finally, redirect to the edit post screen for the new draft
*/
wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
exit;
} else {
wp_die('Post creation failed, could not find original post: ' . $post_id);
}
}
add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );
/*
* Add the duplicate link to action list for post_row_actions
*/
function rd_duplicate_post_link( $actions, $post ) {
if (current_user_can('edit_posts')) {
$actions['duplicate'] = '<a href="' . wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
}
return $actions;
}
add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );

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

add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);

После этого вы можете сохранить файл и повторно загрузить его на свой сервер. Затем вы можете вернуться к панели инструментов WordPress. Кнопка «Дублировать» теперь должна появляться, когда вы наводите курсор на страницу или публикацию, которую хотите клонировать.

2. Вручную скопируйте и вставьте код для дублирования страницы

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

  1. Откройте страницу или пост, который хотите продублировать.
  2. Нажмите на меню «Дополнительные инструменты и параметры» .
  3. Выберите Редактор кода .
  4. Скопируйте код страницы или поста.
  5. Нажмите «Новая запись» или «Новая страница» .
  6. В новом посте или на странице откройте Редактор кода .
  7. Вставьте код.
  8. Нажмите на меню «Дополнительные инструменты и параметры» .
  9. Выберите Визуальный редактор .
  10. Новая страница или сообщение теперь должны быть клоном старого.

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

Продолжайте учиться с WP Engine

Оптимизировать работу с WordPress легко с помощью клонирования страниц. Существует множество других способов сэкономить время, например, путем переноса страниц или сообщений между сайтами WordPress и даже копирования сред разработки.

Здесь, в WP Engine, мы предлагаем лучшие ресурсы для разработчиков, желающих создать отличный цифровой опыт для своих клиентов. Ознакомьтесь с нашими планами, чтобы начать прямо сейчас!