Cómo duplicar una página, entrada o post en WordPress

Cómo duplicar una página, entrada o post en WordPress
  • 4
    Jul

Cómo duplicar una página, entrada o post en WordPress

¿Alguna vez te has enfrentado a una situación en la que quieres darle un nuevo aire a tu página actual con un nuevo diseño, pero quieres mantener intacto el contenido para usarlo en el futuro? Seguramente puedes usar copiar / pegar y guardar todo el contenido en un borrador, pero esto no movería la optimización SEO, las plantillas de página, las imágenes destacadas y otros datos asociados.

También hay ocasiones en que quieres clonar tu blog/página existente solo para hacer algunos ajustes en una de las copias y compararla con la versión anterior. Bien, ¡podría haber muchísimas circunstancias cuando solo necesitas duplicar una página o una publicación en WordPress!

Es inútil tener que hacerlo dos veces cuando realmente puedes ahorrar tu tiempo simplemente duplicando la página o la entrada deseada en WordPress con un solo clic. En este tutorial, aprenderemos cómo duplicar una página en WordPress con la ayuda de plugins ya que es la manera más fácil y sencilla de hacerlo.

Opción 1 – Duplicar una página/entrada con el plugin Duplicate Post

El plugin Duplicate Post es una de las formas más sencillas con las cuales puedes clonar tu página o entrada en WordPress. No solo te permite crear un clon, sino que también puedes elegir agregar tus propias opciones de personalización. Puedes tener un sufijo o prefijo predefinido que se puede agregar antes o después del título de la página o entrada clonada. Además, también puedes restringir la funcionalidad del plugin en función de los roles del usuario.

Para clonar tu entrada/página con este plugin, sigue los pasos que se detallan a continuación:

  1. Instala y activa el plugin.
  1. A continuación, haz clic en Páginas -> Todas las páginas.
  2. Ahora pasa el cursor sobre la página o entrada que deseas clonar, y verás dos nuevas opciones allí: Clonar y Nuevo borrador.
  • Puedes hacer clic en Clonar para crear una versión clonada de la entrada seleccionada.
  • Puedes hacer clic en Nuevo borrador para crear una versión clonada de la entrada seleccionada y abrirla en el editor de entradas. Luego puedes comenzar la edición y elegir guardarla como borrador o publicarla.

Opción 2 – Clonar una página/entrada con el plugin Duplicate Page and Post

Duplicate Page y Post es otro plugin que se puede utilizar para clonar páginas y entradas rápidamente. El plugin te ayuda a crear un duplicado de una página o entrada mientras se asegura de que todo el contenido, título y estilo de la página o la entrada se conserven tal como está.

Usar este plugin es bastante fácil. Solo tienes que seguir estos pasos:

  1. Instala y activa el plugin Duplicate Page and Post.
  1. A continuación, ve a Páginas -> Todas las páginas si quieres crear una copia clonada de una página, o a Entradas-> Todas las entradas si deseas crear una copia clonada de tu entrada.
  2. Pasa el cursor sobre la entrada que deseas clonar y haz clic en Clone Me!.
  3. A continuación, serás redirigido a una copia clonada de la entrada o la página, respectivamente. Edítalo y haz clic en Publicar (Publish) o en Guardar borrador (Save Draft).

Opción 3 – Usar Post Duplicator para clonar entradas y páginas de WordPress

Si los dos plugins anteriores no se adaptan muy bien a tus necesidades, puedes optar por usar Post Duplicator. Este plugin te permitiría crear una réplica exacta de la entrada seleccionada al mismo tiempo que conserva los campos personalizados y las taxonomías personalizadas.

Esto es todo lo que tienes que hacer es:

  1. Instala y activa el plugin.
  2. Pasa el cursor sobre la entrada o la página que quieres duplicar y haz clic en Duplicar entrada/Duplicar página para crear una copia clonada.
  3. El plugin duplicará al instante la página o entrada.

Opción 4 – Duplicar una página o entrada de WordPress sin usar plugins

Nota: Recomendamos realizar una copia de seguridad de tu sitio web antes de editar cualquier archivo de WordPress.

Además de utilizar plugins, también puedes usar código para duplicar páginas y entradas de WordPress. Si eres de los que les gusta la programación, esta será tu oportunidad. Incluso si no te gusta, también te daremos una solución. A continuación, encontrarás el fragmento de código para habilitar la duplicación de entradas en WordPress:

  1. /*
  2. * Function for post duplication. Dups appear as drafts. User is redirected to the edit screen
  3. */
  4. function rd_duplicate_post_as_draft(){
  5. global $wpdb;
  6. if (! ( isset( $_GET[‘post’]) || isset( $_POST[‘post’]) || ( isset($_REQUEST[‘action’]) && ‘rd_duplicate_post_as_draft’ == $_REQUEST[‘action’] ) ) ) {
  7. wp_die(‘No post to duplicate has been supplied!’);
  8. }
  9. /*
  10. * Nonce verification
  11. */
  12. if ( !isset( $_GET[‘duplicate_nonce’] ) || !wp_verify_nonce( $_GET[‘duplicate_nonce’], basename( __FILE__ ) ) )
  13. return;
  14. /*
  15. * get the original post id
  16. */
  17. $post_id = (isset($_GET[‘post’]) ? absint( $_GET[‘post’] ) : absint( $_POST[‘post’] ) );
  18. /*
  19. * and all the original post data then
  20. */
  21. $post = get_post( $post_id );
  22. /*
  23. * if you don’t want current user to be the new post author,
  24. * then change next couple of lines to this: $new_post_author = $post->post_author;
  25. */
  26. $current_user = wp_get_current_user();
  27. $new_post_author = $current_user->ID;
  28. /*
  29. * if post data exists, create the post duplicate
  30. */
  31. if (isset( $post ) && $post != null) {
  32. /*
  33. * new post data array
  34. */
  35. $args = array(
  36. ‘comment_status’ => $post->comment_status,
  37. ‘ping_status’ => $post->ping_status,
  38. ‘post_author’ => $new_post_author,
  39. ‘post_content’ => $post->post_content,
  40. ‘post_excerpt’ => $post->post_excerpt,
  41. ‘post_name’ => $post->post_name,
  42. ‘post_parent’ => $post->post_parent,
  43. ‘post_password’ => $post->post_password,
  44. ‘post_status’ => ‘draft’,
  45. ‘post_title’ => $post->post_title,
  46. ‘post_type’ => $post->post_type,
  47. ‘to_ping’ => $post->to_ping,
  48. ‘menu_order’ => $post->menu_order
  49. );
  50. /*
  51. * insert the post by wp_insert_post() function
  52. */
  53. $new_post_id = wp_insert_post( $args );
  54. /*
  55. * get all current post terms ad set them to the new post draft
  56. */
  57. $taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array(“category”, “post_tag”);
  58. foreach ($taxonomies as $taxonomy) {
  59. $post_terms = wp_get_object_terms($post_id, $taxonomy, array(‘fields’ => ‘slugs’));
  60. wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
  61. }
  62. /*
  63. * duplicate all post meta just in two SQL queries
  64. */
  65. $post_meta_infos = $wpdb->get_results(“SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id”);
  66. if (count($post_meta_infos)!=0) {
  67. $sql_query = “INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) “;
  68. foreach ($post_meta_infos as $meta_info) {
  69. $meta_key = $meta_info->meta_key;
  70. if( $meta_key == ‘_wp_old_slug’ ) continue;
  71. $meta_value = addslashes($meta_info->meta_value);
  72. $sql_query_sel[]= “SELECT $new_post_id, ‘$meta_key’, ‘$meta_value'”;
  73. }
  74. $sql_query.= implode(” UNION ALL “, $sql_query_sel);
  75. $wpdb->query($sql_query);
  76. }
  77. /*
  78. * finally, redirect to the edit post screen for the new draft
  79. */
  80. wp_redirect( admin_url( ‘post.php?action=edit&post=’ . $new_post_id ) );
  81. exit;
  82. } else {
  83. wp_die(‘Post creation failed, could not find original post: ‘ . $post_id);
  84. }
  85. }
  86. add_action( ‘admin_action_rd_duplicate_post_as_draft’, ‘rd_duplicate_post_as_draft’ );
  87. /*
  88. * Add the duplicate link to action list for post_row_actions
  89. */
  90. function rd_duplicate_post_link( $actions, $post ) {
  91. if (current_user_can(‘edit_posts’)) {
  92. $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>’;
  93. }
  94. return $actions;
  95. }
  96. add_filter( ‘post_row_actions’, ‘rd_duplicate_post_link’, 10, 2 );

Si bien este fragmento solo funciona para duplicar entradas, puedes cambiar a la duplicación de páginas de WordPress reemplazando la última línea por esta:

  1. add_filter(‘page_row_actions’, ‘rd_duplicate_post_link’, 10, 2);
Agregar función para duplicar la página de WordPress

Todo lo que tienes que hacer es pegar este código en tu archivo functions.php. Para hacer esto, puedes usar el Administrador de archivos, el cliente FTP o el editor de archivos de WordPress incorporado:

Botón para duplicar la página o entradas

Ahora, si vas a la sección Todas las entradas o Todas las páginas, deberías ver un botón Duplicar.

Si presionas este botón, WordPress creará una copia de la página o entrada y la guardará como borrador.

Directorio de Web hosting Venezuela