Duplicar páginas y entradas en WordPress con un solo clic

Fecha: 02/10/2018
Si trabajas con WordPress, seguro que más de una vez has necesitado duplicar páginas y entradas y no has sabido cómo hacerlo. Copiar el contenido de manera manual siempre te hace perder mucho tiempo. Si estás leyendo este post es porque quieres duplicar contenido en WordPress con un solo clic. Porque, a veces, lo único que necesitas es tener una copia de seguridad de tu página antes de modificarla. O bien tienes una landing page que funciona muy bien y quieres replicarla con tan sólo unos pequeños cambios. Puedes tener distintos motivos.   El caso es que, muchas veces, lo vas a necesitar y quieres ahorrar tiempo. En este artículo te voy a enseñar a duplicar páginas y entradas en WordPress de manera automática utilizando algunos de los plugins gratuitos más conocidos, así como de manera manual sin utilizar complemento alguno. ¡Tú eliges! [elementor-template id="80835"]

Duplicate page: Cómo duplicar páginas y entradas en WordPress con un solo clic

Si lo que quieres es algo simple y fácil de usar, Duplicate Page es tu plugin. Duplicate page es un plugin que te deja duplicar páginas, entradas y entradas personalizadas en WordPress. Permite guardar el contenido clonado como borrador, privado, público o pendiente, según cómo lo configures antes de empezar a trabajar con el. Puedes descargar Duplicate Page de forma gratuita directamente del repositorio oficial de WordPress, pero el plugin ofrece mejoras en su versión premium: más opciones de configuración, acceso a las funciones del plugin filtrando por tipo de usuario, activación del plugin en diferentes tipos de contenido, reedirecciones después de realizar una clonaciónAunque si lo único que necesitas es duplicar el contenido de tu WordPress para hacer modificaciones, copias de seguridad de páginas y entradas, etc., la versión gratuita es más que suficiente. Lo primero que tienes que hacer es entrar en el panel de control de tu WordPress, instalar el plugin y activarlo. Antes de empezar a usarlo, échale un ojo a las opciones de configuración de Duplicate Page. Dirígete a Ajustes > Duplicar página: duplicate-page-ajustes-01 Tendrás que configurar Duplicate Page según tus necesidades:
  • Estado de entrada duplicada: Cuando el plugin va a realizar el duplicado de páginas o entradas, necesita asignarle a ese contenido un estado.  En WordPress existen 4 estados de una entrada o página: Borrador, Pendiente, Público y Privado. Por defecto, su estado es “Borrador” y, desde mi punto de vista, es el más adecuado y el que te recomiendo que dejes configurado.  
  • Dónde redirigir después de Duplicar: Cuando el plugin realiza el duplicado del contenido, pueden ocurrir dos cosas: apareces en el listado de páginas o entradas (según corresponda) o en el panel de edición del post o página que acabas de duplicar. Tú decides.
  • Sufijo de entrada duplicada: Cuando el plugin realiza el duplicado del contenido, le añade un sufijo al nombre de la entrada o página. Este nombre aparecerá después del título.
duplicate-page-sufijo-02 Una vez que lo tengas todo a tu gusto, pulsa en el botón de “Guardar y listo. Ya puedes empezar a usar Duplicate Page. Si quieres clonar una página en WordPress, dirígete a: Páginas > Todas las páginas y pasa el cursor sobre la página que quieres duplicar. Verás que aparece una opción que se llama “Duplicar”. duplicate-page-duplicar-03 Pulsa en el botón y ¡listo! Ya tienes tu página duplicada. Si lo que quieres es duplicar un post o entrada en WordPress, dirígete a: Entradas > Todas las entradas y pasa el cursor sobre la entrada que quieres duplicar. Verás que aparece (al igual que antes) la opción de “Duplicar”. El procedimiento es el mismo tanto para páginas como para post.

Duplicate post: Cómo duplicar contenido de cualquier tipo en WordPress

Si lo que estás buscando es un plugin algo más completo, lo mejor es que te descargues e instales Duplicate Post. Duplicate post es uno de los plugins para duplicar contenido de WordPress más antiguos (tiene más de 8 años) y completos. Está traducido a 32 idiomas y tiene más de 2 millones de instalaciones activas. Lo que otros como Duplicate Page ofrecen en su versión premium, con Duplicate Post lo tienes totalmente gratis.  Lo puedes descargar desde el repositorio de WordPress: Descargar Duplicate Post. Para empezar, instala el plugin y actívalo. Antes de empezar a usarlo es mejor que lo configures. Tiene muchísimas opciones que estoy segura que te van a interesar. Dirígete a: Ajustes > Duplicate Post. Tiene 3 pestañas de configuración: Qué copiar, Permisos y Visualización. Empieza por “Qué copiar”. Aquí vas a filtrar qué contenido del elemento que vas a duplicar quieres copiar: duplicate-post-configuracion-01
  • Elementos de la página o entrada a copiar: Selecciona qué elementos del contenido original quieres copiar en tu nueva entrada: título, fecha, slug, extracto…
  • Prefijo del título: Si rellenas este campo, ese texto aparecerá antes del título de tu contenido clonado.
  • Sufijo del título: Si rellenas este campo, ese texto aparecerá después del título de tu contenido clonado.
  • Subir el orden del menú en: Añadir el número correspondiente al orden del menú. Si lo quieres dejar por defecto, déjalo en blanco.
  • No copiar estos campos: Escribe el nombre, separado por comas, de cada uno de los campos personalizados que quieres excluir de la copia.
  • No copiar estas taxonomías: Marca las casillas de las taxonomías que quieres excluir de la copia.
Una vez que configures todo a tu gusto, pulsa en “Guardar los cambios” y dirígete a la siguiente pestaña: Permisos. Aquí tienes que configurar solo dos cosas: qué roles de usuarios van a poder duplicar páginas y entradas en WordPress y en qué tipos de contenido va a estar disponible la función de clonar (páginas, entradas o ambas). duplicate-post-configuracion-02 Cuando realices los cambios que necesites, pulsa en “Guardar los cambios” y vete a la tercera y última pestaña: Visualización. duplicate-post-configuracion-03 Aquí tienes que marcar aquellos lugares del panel de control de WordPress en los que quieres que se muestren los enlaces rápidos para duplicar el contenido. duplicate-post-enlace-rapido-01 Para terminar, pulsa en “Guardar los cambios” y ¡listo! Ya puedes empezar a utilizar Duplicate Post. Como ves tiene muchas más opciones de configuración que Duplicate Page, pero a la hora de trabajar con él es igual de sencillo. Para duplicar una entrada en WordPress con Duplicate Post, solo tienes que ir a: Entradas > Todas las entradas y pasar el cursor sobre el post que quieres clonar. Verás que aparece una opción que se llama “Clonar” y otra que se llama “Nuevo borrador”. duplicate-post-clonar-04 ¡Mucho cuidado! Si pulsas en “Clonar”, el plugin automáticamente va a copiar todo el contenido de esa entrada y lo va a publicar directamente. Por lo que si lo que quieres es hacer una copia del contenido de una entrada pero no quieres que se publique todavía, lo mejor es que pulses en “Nuevo borrador”. Va a copiar igualmente todo el contenido de ese post pero, como estado, le va a asignar el de “Borrador” y no el de “Publicado”. Si lo que quieres es duplicar una página en WordPress con Duplicate Post, solo tienes que ir a: Páginas > Todas las páginas y pasar el cursor sobre la página que quieres clonar. Como verás, el procedimiento es igual al de las entradas. Si pulsas en “Clonar”, la página se publicará directamente. Si pulsas en “Nuevo borrador”, crearás un borrador de la página que quieres duplicar. ¡Listo! Como ves, Duplicate Post es muy completo y fácil de usar.

Snippet o tweak para duplicar páginas y entradas en WordPress

Si no eres fan de instalar muchos plugins y te gusta crear tus funciones personalizadas en tu instalación de WordPress, a continuación te voy a enseñar un tweak o snippet que te permite duplicar páginas y entradas en WordPress.
Recuerda que el código que te voy a mostrar a continuación tienes que añadirlo al functions.php de tu tema. En concreto, al functions.php de tu tema hijo. Si no tienes uno, este es el momento de crear tu child theme. Así no perderás los cambios con las actualizaciones del tema principal.
Como es un snippet un poco “grande” te voy a ir enseñando poco a poco qué hace y tú deberás copiarlo y pegarlo en el orden que te voy mostrando. Lo primero que hace este snippet es añadir una opción o botón nuevo a las entradas y a las páginas. Pero este botón solo lo visualizarán aquellos usuarios que estén logueados en tu WordPress y tengan permisos de edición, es decir, los usuarios a los que tú has permitido editar posts y páginas en tu blog. snippet-duplicar-01
/*
* FUNCIÓN 1: Añadir el botón de clonar a páginas y entradas
*/
function insertar_boton_duplicar($acciones,$post) 
{
    //Si el usuario tiene permisos para editar entradas y páginas, entonces puede visualizar el botón de clonar
    if(current_user_can('edit_posts'))$acciones['clone']='<a href="'.wp_nonce_url('admin.php?action=duplicar_contenido&post='.$post->ID,basename(__FILE__),'clone_nonce').'" title="Duplicar este contenido" rel="permalink">Duplicar</a>';
    return $acciones;
}

/*
* Se añade la función a la lista de acciones de los post y páginas
*/
add_filter( 'post_row_actions', 'insertar_boton_duplicar', 10, 2 ); //Entradas
add_filter( 'page_row_actions', 'insertar_boton_duplicar', 10, 2 ); //Paginas
La segunda función recopila toda la información del post o página que quieres duplicar y crea el borrador con esos datos: título, autor, meta datos, taxonomías, texto... Solamente fallará si no recibe correctamente el identificador del contenido, si no existe el contenido original o si la inserción en la base de datos no ha sido posible.
/*
* FUNCION 2: Crear el borrador del contenido
*/
function crear_borrador($id=0){
	//Comprobar que se recibe un id válido (distinto de 0). Si no es válido, se termina la función y no se realiza ninguna acción.
	if(!$id) return 0;
	//Como se ha comprobado que el id es valido se recuperan los datos del post con ese identificador y se comprueba si existe o no
	$post = get_post( $id );
	if (isset( $post ) && $post != null)
	{
	    //Se recopilan los datos que se necesitan para hacer la clonación: el usuario, el titulo, el tipo, el autor... todo lo referente al contenido a clonar.
        $datos = array(
            'post_title'     => $post->post_title,
            'post_name'      => $post->post_name,
            'post_content'   => $post->post_content,
            'post_excerpt'   => $post->post_excerpt,
            'post_parent'    => $post->post_parent,
            'post_type'      => $post->post_type,
            'post_status'    => 'draft',
            'post_password'  => $post->post_password,
            'post_author'    => $post->post_author,
            'ping_status'    => $post->ping_status,
            'to_ping'        => $post->to_ping,
            'comment_status' => $post->comment_status,
            'menu_order'     => $post->menu_order
        );
        //wp_insert_post inserta el contenido del objeto que se construyó con anterioridad en la base de datos
        $id_borrador = wp_insert_post( $datos );
      
		//Si la inserción en la base de datos no ha sido correcta el identificador no es válido.
        if($id_borrador)
		{
			//Como la inserción se ha realizado correctamente. Se copian del original al borrador las taxonomías y el contenido meta.
			$taxonomies = get_object_taxonomies($post->post_type);
			foreach ($taxonomies as $taxonomy) {
				//Se recogen los datos
				$post_terms = wp_get_object_terms($post->ID,$taxonomy,array('fields'=>'slugs'));
				//Se asignan los datos
				wp_set_object_terms($id_borrador,$post_terms,$taxonomy,false);
			}
			
			$post_meta = get_post_meta($id);
			foreach($post_meta as $key=>$val) 
			{
				if($key=='_wp_old_slug'){continue;}
				$value=addslashes($val[0]);
				//Se inserta el contenido meta al borrador
				add_post_meta($id_borrador,$key,$value);
			}

			return array('id_borrador'=>$id_borrador,'post'=>$post);
		}
		else wp_die('Error al crear el borrador del contenido.');
        
	}else wp_die('Error al crear el duplicado. No se encuentra el contenido original');
    
}
La tercera y última función es la que realiza todo el proceso. Comprueba si el usuario ha pulsado en el botón de “Duplicar” y, si es así, ejecuta la función que crea el borrador. Si el proceso ha sido un éxito, el usuario será redirigido a la pantalla de edición de ese nuevo borrador.
/*
* FUNCTION 3: Finalmente se procesa el duplicado del borrador una vez que se pulsa en el botón
*/

function duplicar_contenido()
{
    global $wpdb;
    
	//Se comprueba si se ha pulsado en el botón de duplicar o clonar y si se recibe la información necesaria del contenido original
    if (!(isset( $_REQUEST['post'])  || ( isset($_REQUEST['action']) && $_REQUEST['action']== 'duplicar_contenido' ) ) ) wp_die('Error: No existe referencia al contenido que se quiere copiar');
    
    $id_post = absint( $_REQUEST['post'] ) ;
    //Se comprueba que el id que se recibe es válido
    if($id_post > 0 ){
        //Se crea el borrador
        $borrador = crear_borrador($id_post);
        //Si todo ha salido bien, al final del duplicado se redirige al usuario a la pagina de edición del borrador
		if($borrador) wp_redirect( admin_url( 'post.php?action=edit&post=' . $borrador['id_borrador'] ) );
        else wp_die('Error al crear el borrador del contenido duplicado. No se encuentra el contenido principal' . $id_post);
    }else wp_die('Error al duplicar. No se encuentra el contenido original' . $id_post);
}

/*
* Después de pulsar el botón de duplicar, se inicia la acción y se duplica el contenido.
*/
add_action( 'admin_action_duplicar_contenido', 'duplicar_contenido' );
Ahora tan solo tienes que copiarlo, pegarlo y probarlo. Puedes realizar las modificaciones que estimes y, si tienes alguna duda, puedes dejarme un comentario. Este no es el único tweak que tenemos en nuestro blog. Si quieres conocer más, te sugiero que visites el siguiente artículo: Tweaking avanzado en el functions.php de WordPress

Conclusión

Como ves, duplicar páginas y entradas en WordPress es muy fácil. Dependiendo del uso que vayas a hacer de esta función es mejor, o no, instalar un plugin. Si eres el único webmaster de tu página y además solo quieres clonar contenido de manera puntual, no necesitas instalar un plugin. Añade la función y coméntala cuando no la necesites. Si, por el contrario, sois muchas personas las que administráis el WordPress y además es algo que vais a usar mucho, instala Duplicate Post o Duplicate Page. ¿Tienes alguna pregunta? ¿Conoces otro plugin para duplicar contenido en WordPress? Anímate a comentar y compartir tu experiencia :-)
Ángela Piñeiro
Ángela Piñeiro

Informática, diseñadora y dibujante desde enana. Formo parte del departamento Marketing, co-organizo #RMC y a veces escribo en el blog. Me encanta todo lo relacionado con el desarrollo web y los videojuegos. Soy la compañera de vida de una de las mascotas oficiales de Raiola: la conejita Lana.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Tenemos 22 comentarios en "Duplicar páginas y entradas en WordPress con un solo clic"
Avatar del autor del comentario

joaquin

10/04/2019 a las 00:02

Muy bueno el post, Angela, sobre todo el snippet para duplicar sin plugin. Me queda la duda de que en el primer párrafo de la conclusión no entiendo qué significa "coméntala" cuando dices en la última frase "Añade la función y coméntala cuando no la necesites". Un saludo

Responder
Avatar del autor del comentario

Ángela

10/04/2019 a las 12:29

Hola, Joaquin:

La función de duplicar contenido no se utiliza todos los días, sino que suele hacer falta solo de manera puntual. Por eso, cuando no la estés usando conviene que la "desactives" o, como decimos en programación, que la "comentes" en el código de tu functions.php. La forma de comentar una función es esta:
/*
CODIGO DEL SNIPPET
*/

De esta manera, al añadirle ese asterisco y esa barra al principio y al final, la función queda comentada (por tanto, WordPress no la ejecuta) pero no la pierdes. Queda ahí por si la necesitas más adelante.

Muchas gracias por comentar.
Un saludo.

Responder
Avatar del autor del comentario

Alejandro Pérez Guerrero

24/10/2019 a las 22:42

Hola Ángela, muy buen post, lo único que con duplicate post, al clonar una página y modificar su clon, solamente se cambian los textos, si modifico la cabecera se modifica la original. Como puedo evitarlo? Un saludo y gracias

Responder
Avatar del autor del comentario

Ángela

25/11/2019 a las 13:55

Hola, Alejandro:
Tengo instalado duplicate post en mi web. Siempre que clono una página, esta se vuelve independiente y puedo modificar cualquier parte sin problema. Como nunca me ha pasado lo que comentas, tendría que ver más a fondo que ocurre en tu caso.

Un saludo.

Responder
Avatar del autor del comentario

Elena

09/08/2021 a las 10:37
Hola! Me pasa lo mismo; cuando cambio el contenido, se me cambia en las dos. ¿Cómo puedo evitarlo? Gracias!
Responder
Avatar del autor del comentario

David Suárez

09/08/2021 a las 11:25
¡Hola Elena! Yo acabo de probar el plugin en un entorno de pruebas y me funciona correctamente. Cuando clono una página y modifico su contenido, solamente se modifica en la página clonada, no en la original. Para intentar ayudarte dime qué parte o partes de la página son las que se te cambian tanto en la página original como en el clon y qué theme estás usando.
Responder
Avatar del autor del comentario

lis

28/08/2020 a las 13:10
Hola, quería saber cómo puedo colocar dos idiomas en una página web? Se puede hacer duplicándola y cambiándole el idioma? No tengo idea. Sé que hay plugins que traducen pero quisiera algo gratis y fácil. Yo traduciría todo.
Responder
Avatar del autor del comentario

David Suárez

02/09/2020 a las 14:05
Hola Lis, si tu página está hecha en WordPress dispones de plugins de traducción como pueden ser WPML o TranslatePress. Pero si buscas una opción gratuita quizás te interese más Polylang (también dispone de versión Pro). En este post puedes ver las diferencias entre ambas versiones y más información acerca del plugin: https://raiolanetworks.com/blog/polylang/ Un saludo y gracias por comentar :)
Responder
Avatar del autor del comentario

Adriana

11/10/2020 a las 22:13
Hola, mi pregunta es si para cambiar contenido o imágenes debo si o si clonar la pagina. Simplemente no se puede editar? Pregunto porque hace apenas unos días me dieron usuario como editor, no es una pagina que yo haya creado y he querido cambiarla pero no me lo permite. En otras versiones de WP lo hacía de esa manera. Muchas gracias
Responder
Avatar del autor del comentario

Alvaro Fontela

13/10/2020 a las 11:35
Hola Adriana, tu problema es simplemente que no tienes permisos al tener un rol de editor. También comentarte que los roles son personalizables, por lo que pueden "restringirlos" mas de lo que viene por defecto.
Responder
Avatar del autor del comentario

Almudena

28/10/2020 a las 07:25
Hola, gracias por la información, me sigue quedando una duda tras leerlo detenidamente. ¿Puedo clonar (y cómo hacerlo) si es a otro dominio? En mi caso tengo 3 webs distintas alojadas con vosotros y quiero utilizar una landing (la maqueta) en otro dominio. Gracias
Responder
Avatar del autor del comentario

Alvaro Fontela

06/11/2020 a las 18:42
Hola Almudena, no, este plugin solo es para clonar dentro de la misma web. Si quieres clonar entre webs, no hay una forma facil, o clonas toda la instalacion y seleccionas, o si usas un pagebuilder como elementor puedes exportar e importar plantillas. Pero no existe ninguna forma simple y estandard de hacerlo.
Responder
Avatar del autor del comentario

Almudena

09/11/2020 a las 17:30
Gracias, exportando la plantilla servirá.
Responder
Avatar del autor del comentario

pelismart.tv

07/01/2021 a las 19:14
Muy buena esta página se la recomiendo por su buen contenido
Responder
Avatar del autor del comentario

Andrea Barreiro

15/01/2021 a las 12:47
¡Muchas gracias!
Responder
Avatar del autor del comentario

Francisco

21/01/2021 a las 19:26
Muy buena entrada. Me fue muy útil. ¡Gracias!
Responder
Avatar del autor del comentario

Alvaro Fontela

23/01/2021 a las 19:45
Gracias a ti por el comentario Francisco :)
Responder
Avatar del autor del comentario

Olimpia

16/11/2021 a las 10:53
Buenos días, Muchas gracias por el blog y el artículo. Yo tengo un problema. Uso WPML para duplicar en otro idioma. La cuestión es que no me salen las mismas entradas ... en catalán me salen unas y en castellano otras... es normal o hay algo que no hago bien? Muchas gracias de nuevo
Responder
Avatar del autor del comentario

Alvaro Fontela

17/11/2021 a las 22:26
Hola Olimpia, es normal que si no tienes las entradas traducidas no salgan las mismas. Cada traduccion va por separado.
Responder
Avatar del autor del comentario

RODOLFO SEALES POSADA

28/02/2022 a las 03:26
si se puede clonar entre dominios con este plugin llamado wordpress-multisite-posts-pages-and-custom-post-types-sync y que lo consigues en codecanyon.net https://codecanyon.net/item/wordpress-multisite-posts-pages-and-custom-post-types-sync/20143748 , te pérmite clonar los post, paginas y demas entre los sitios y ademas hay otro plugin para copiar entre dominios diferentes aqui mismo : https://codecanyon.net/item/wordpress-api-posts-and-pages-sync-with-multiple-wordpress-sites/22075096 Esta empresa cubre con sus plugins muchas de las necesidades de copiar o duplicar posts, paginas, sitios y demas. solo busca y encuentra.
Responder
Avatar del autor del comentario

Gynny

05/08/2022 a las 10:20
Lo mejor que he encontrado para duplicar una página sin ensuciar mi WP... Lo mejor, que lo ha publicado una colega jaja! Mujeres al poder. Gracias Angela, excelente post y súper útil.
Responder
Avatar del autor del comentario

Omar Díaz

12/08/2022 a las 14:20
Muchas gracias por tu comentario Gynny. Encantados de que te haya sido útil✌
Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¿Vienes desde otro proveedor?

¡Sin problema! Te migramos gratis y sin cortes
Migraciones de hosting gratis