Cómo duplicar una página en WordPress

Actualizado:

Escrito por Jorge Hudson

Cómo duplicar páginas y entradas en wordpress

Duplicar una página en WordPress puede ser increíblemente útil en varias situaciones: para darle un nuevo aire a tu diseño sin perder el contenido original, para realizar pruebas A/B, o simplemente para mantener una copia de seguridad rápida a mano. Aunque copiar y pegar el contenido puede ser una opción, esta no incluye aspectos importantes como la optimización SEO, plantillas de página, y otros metadatos. Por suerte, WordPress ofrece métodos eficientes para duplicar páginas y entradas con un solo clic, ya sea a través de plugins o código manual.

Lo que Necesitarás

Antes de comenzar, asegúrate de tener lo siguiente:

  • Acceso al panel de administración de WordPress.

Métodos para Duplicar una Página en WordPress

Método 1: Utilizando el Plugin Duplicate Post

El plugin Duplicate Post es una de las formas más sencillas para clonar tu página o entrada en WordPress. Además de crear un clon exacto, te permite agregar opciones de personalización como sufijos o prefijos a tus títulos.

  1. Instala y activa el plugin Duplicate Post.
  2. Navega a Páginas -> Todas las páginas.
  3. Pasa el cursor sobre la página que deseas clonar y verás dos opciones: Clonar y Nuevo borrador.
    • Clonar: Crea una copia exacta de la página.
    • Nuevo borrador: Abre la versión clonada en el editor de entradas.

Método 2: Utilizando el Plugin Duplicate Page and Post

Duplicate Page and Post facilita la clonación de páginas y entradas mientras conserva todo el contenido, estilo y metadatos.

  1. Instala y activa el plugin Duplicate Page and Post.
  2. Ve a Páginas -> Todas las páginas o Entradas -> Todas las entradas.
  3. Pasa el cursor sobre la entrada o página que deseas clonar y haz clic en Clone Me!.
  4. Edita la copia clonada y selecciona Publicar o Guardar borrador.

Método 3: Utilizando el Plugin Post Duplicator

Este plugin permite crear una réplica exacta de cualquier entrada o página, incluyendo campos y taxonomías personalizadas.

  1. Instala y activa el plugin Post Duplicator.
  2. Navega a Páginas -> Todas las páginas o Entradas -> Todas las entradas.
  3. Pasa el cursor sobre la página o entrada y haz clic en Duplicar entrada/Duplicar página.

Método 4: Sin Utilizar Plugins – A través del archivo functions.php

Si prefieres no usar plugins, puedes optar por añadir código al archivo functions.php de tu tema.

  1. Navega a Apariencia -> Editor de temas.
  2. Selecciona functions.php y pega el siguiente fragmento de código:
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!');
  }

  $post_id = (isset($_GET['post']) ? absint($_GET['post']) : absint($_POST['post']));
  $post = get_post($post_id);

  $current_user = wp_get_current_user();
  $new_post_author = $current_user->ID;

  if (isset($post) && $post != null) {
    $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,
    );

    $new_post_id = wp_insert_post($args);

    $taxonomies = get_object_taxonomies($post->post_type);
    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);
    }

    $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);
    }

    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');
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);

Para duplicar una página, reemplaza la última línea con:

add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
Foto del autor

Jorge Hudson

Soy desarrollador y estratega SEO. Mi trabajo es convertir tu web en un sistema que atrae clientes de forma constante. Traduzco la complejidad técnica en un plan de acción que genera negocio. No vendo teoría, implemento soluciones. Hablemos si buscas resultados, no solo informes.

Deja un comentario

JORGEHUDSON.COM

SEO Basado en resultados, sin secretos.

Redes