Cómo duplicar una página 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.
Así que empecemos.
Tabla de Contenidos
Cómo Duplicar una Página en WordPress – Video
En la Academia de Hostinger hemos creado este tutorial por si prefieres saber cómo duplicar una página de WordPress en video.
Lo que necesitarás
Antes de comenzar esta guía, necesitarás lo siguiente:
- Acceso al Panel de administración de WordPress
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:
- Instala y activa el plugin.
- A continuación, haz clic en Páginas -> Todas las páginas.
- 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:
- Instala y activa el plugin Duplicate Page and Post.
- 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.
- Pasa el cursor sobre la entrada que deseas clonar y haz clic en Clone Me!.
- 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:
- Instala y activa el plugin.
- 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.
- El plugin duplicará al instante la página o entrada.
Opción 4 – Duplicar una página o entrada de WordPress sin usar plugins
Además de utilizar plugins, también puedes usar código para duplicar páginas y entradas 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.
Si optas por la segunda opción, lee nuestro artículo para conocer los mejores editores HTML para editar código.
Por otro lado, si quieres usar un editor de archivos incorporado para duplicar entradas o páginas en tu sitio, navega a Apariencia en tu panel de control de WordPress. Ve al Editor de Temas y selecciona Funciones del Tema.
Alternativamente, puedes usar el Administrador de archivos de Hostinger para configurar el archivo functions.php.
Ahora, veamos las instrucciones paso a paso para duplicar una página o una entrada en tu sitio web de WordPress.
¡Importante! Recomendamos realizar una copia de seguridad de tu sitio web antes de editar cualquier archivo de WordPress.
Cómo duplicar una entrada a través del archivo functions.php
Para duplicar una entrada, tendrás que pegar el siguiente fragmento de código en tu archivo functions.php:
/* * 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 );
Cómo duplicar una página en WordPress a través del archivo Functions.php
El proceso para duplicar una página en WordPress es bastante sencillo. Todo lo que tienes que hacer es reemplazar la última línea del código anterior con el siguiente fragmento:
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
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.
Conclusión
Estamos seguros de que debes estar preguntándote por qué no conocías estos plugins antes. ¡Mejor tarde que nunca! Esperamos que el tutorial anterior responda todas tus preguntas y ahora sepas cómo duplicar una página en WordPress. Todos los plugins mencionados anteriormente no solo son rápidos sino también confiables. ¿Por qué invertir tu tiempo en una tarea cuando realmente puede hacerlo con unos pocos clics?
¿Tienes alguna consulta o tienes una experiencia para compartir? Cuéntanos en los comentarios!
Para obtener más guías y tutoriales de WordPress, asegúrate de consultar la sección de tutoriales de WordPress.
Comentarios
December 17 2018
Wow, muchas gracias.
December 28 2018
Me funcionó de maravilla
February 19 2019
Gracias Gustavo!!!! la opción sin plugging funciona a la pefección
March 04 2019
Hola María, qué bien! Nos alegra que te haya funcionado :D Saludos!
July 23 2019
Maravilloso. Funciona correctamente. ¡Gracias!
July 25 2019
Hola Ana, nos alegra que te haya servido la información :)
April 18 2020
Gracias Gustavo, un saludo.
April 23 2020
Hola Antonio, nos alegra que te haya gustado este tutorial. Saludos!
May 14 2020
Genial, muchas gracias! Se debe de quitar el plugin una vez hecha la página web del cliente, o puede dar algún error?
September 18 2020
Me parece muy buen plugin, pero no resuelve mi problema. Mi sitio es una revista y como tal, quisiera repetir la misma estructura en diferentes carpetas donde se publican los números de la revista. Es decir, que quede así para los usuarios: Midominio.com/1/ y luego Midominio.com/2/, así sucesivamente, para que los usuarios puedan entrar el número 1 o al 2, etc... sin que se vea el contenido de otro número. Muchas revistas lo usan así. Muchísimas, en realidad, pero nadie me ha podido contestar cómo organizo mi wordpress para que quede así. Intenté duplicar la carpeta de word-content y no me funcionó. ¿Puedes ayudarme?
August 16 2021
Felicidades por el articulo Genial, las horas que he perdido anteriormente en crear paginas. Ya se que hay plugins, pero no me gusta cargar mucho el sitio.
August 18 2021
Muchas gracias, Miguel. Nos alegra que te haya servido el artículo. Saludos!
January 19 2022
Hola, muchas gracias por la ayuda, el código sin plugin funciona perfectamente, pero únicamente funciona en las entradas de Wordpress, en las páginas no se sobreescribe y no aparece la opción... hay que cambiar algún dígito o composición del código? gracias!
February 01 2022
Hola Laura! Para las páginas, debes cambiar la última línea del código:
add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
por esta:add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
Luego de guardar, deberías ver el botón de duplicar. Recuerda que debes agregar el código al archivo functions.php de tu tema de WordPress activo. Saludos!March 06 2022
Genial Ya he vuelto aquí al menos 12 veces. Nunca me acuerdo y cada sitio nuevo que hago, vengo a ver como se duplican paginas y entradas sin Plugins Gracias