WordPress

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

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

Сталкивались ли вы с ситуацией, когда нужно обновить дизайн для текущей страницы, но оставить контент неповреждённым для дальнейшего использования? Конечно, вы можете использовать операцию копирования/вставки и сохранить весь контент в черновике, но это не поможет перенести оптимизацию SEO, шаблоны страницы, изображения записи и другие связанные данные.

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

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

Давайте начнём.

Что понадобится

Прежде чем вы начнёте это руководство, проверьте наличие следующего:

  • доступ к Админ Консоли WordPress

Вариант 1 – Дублирование WordPress страницы или записи с плагином Duplicate Post

Плагин Duplicate Post – один из самый простых способов для клонирования вашей WordPress страницы или записи. Плагин позволяет вам не только создавать клон, но и добавлять свои собственные параметры настройки. У вас может быть заранее определённый префикс или суффикс, который можно добавить перед или после заголовка дублированной WordPress страницы или записи. Также вы можете разграничивать функциональность плагина по ролям пользователей.

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

  1. Установите и активируйте плагин.
    Установка плагина Duplicate post WordPress
  2. Далее нажмите на Страницы -> Все страницы.
  3. Теперь наведите на страницу или запись, которую вы хотите дублировать и вы увидите новые настройки – Клонировать и Новый черновик.
    Плагин Duplicate post настройки клонирования в меню Все записи
  • Вы можете нажать на Клонировать для того, чтобы создать клонированную версию выбранной записи.
  • Вы можете нажать на Новый черновик для того, чтобы создать клонированную версию выбранной публикации и затем открыть её для редактирования. Позже вы сможете перейти к редактированию и выбрать вариант сохранить её как черновик или опубликовать.

Вариант 2 – Дублирование страницы или записи с плагином Duplicate Page and Post

Duplicate Page and Post – другой плагин для быстрого дублирования страниц и записей. Плагин помогает вам создавать копии страниц или записей с полной уверенность, что всё содержимое – название и стили страницы или записи сохранены.

Использовать этот плагин очень просто. Следуйте этим шагам:

  1. Установите и активируйте плагин Duplicate Page and Post.
    Плагин Duplicate page and post WordPress - установка
  2. Далее перейдите в Страницы -> Все страницы, если вы хотите создать клон для страницы или Записи -> Все записи, если собираетесь создать копию своей записи.
  3. Наведите на публикацию, которую вы хотите клонировать и нажмите Clone Me.
    Создать клон записи WordPress - плагин Duplicate post and page
  4. Затем вы будете перенаправлены на клонированную копию записи или страницы соответственно. Отредактируйте и нажмите или Publish (Опубликовать), или Save Draft (Сохранить).
    Копия записи в WordPress

Вариант 3 – Дублирование страницы или записиWordPress с плагином Post Duplicator

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

Всё, что вам нужно сделать это:

  1. Установить и активировать плагин.
    Плагин Post Duplicator для создания копии публикации WordPress
  2. Наведите на запись или страницу, которую хотите дублировать и нажмите на Duplicate Запись/Duplicate Страница для создания копии.
    Дублировать страницу WordPress - плагин Post Duplicator
  3. Плагин сразу же выполнит дублирование страницы или записи.
    Копия страницы WordPress - плагин Post Duplicator

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

Примечание: Настоятельно рекомендуем вам сделать бэкап вашего сайта перед редактирование любых файлов WordPress.

Кроме использования плагинов, вы также можете использовать код, чтобы дублировать страницу WordPress (или запись). Если вам нравится программировать, это будет наилучший вариант для вас. И даже, если это не так, мы вам поможем. Ниже вы найдёте фрагмент кода, позволяющий дублировать публикации в WordPress:

/*
 * 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 );

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

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

Всё, что вам нужно сделать, это вставить этот код в файл functions.php. Для этого вы можете использовать File Manager, FTP-клиент или встроенный редактор файлов WordPress:Функция для дублирования страниц в WordPress

Сейчас, если вы перейдёте в раздел Все записи или Все страницы, вы увидите кнопку Duplicate.Дублировать страницу WordPress - Ссылка Duplicate в меню Все записи WordPress

Если вы нажмете эту кнопку, WordPress создаст копию страницы или записи и сохранит её как черновик.

Итоги

Уверены, вы удивитесь, как вы раньше не знали об этих плагинах. Но лучше поздно, чем никогда! Мы надеемся, что это руководство дало ответы на все ваши вопросы и теперь вы знаете, как дублировать страницу WordPress. Все вышеупомянутые плагины не только быстрые, но и надёжные. Зачем тратить свое время на выполнение задачи вручную, если вы можете сделать это быстрее, всего в несколько кликов?

У вас есть какие-либо вопросы или свой интересный опыт? Напишите нам об этом в комментариях!

Ещё больше руководств по WordPress можно найти в разделе руководств.

Добавить комментарий

Нажмите здесь, чтобы оставить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Присоединяйтесь к тысячам других подписчиков по всему миру

и получайте самые свежие руководства на вашу электронную почту

Пожалуйста, подождите...

Спасибо за подписку!

Начните экономить сейчас!

Хостинг и доменное имя от

42
00
грн/мес