Duplicar páginas y entradas en WordPress con un solo clic
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!
- Duplicate page: Cómo duplicar páginas y entradas en WordPress con un solo clic
- Duplicate post: Cómo duplicar contenido de cualquier tipo en WordPress
- Snippet o tweak para duplicar páginas y entradas en WordPress
- Conclusión
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ón… Aunque 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:
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.
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”.
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:
- 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).
Cuando realices los cambios que necesites, pulsa en “Guardar los cambios” y vete a la tercera y última pestaña: Visualización.
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.
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”.
¡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.
/*
* 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 :-)
Deja una respuesta
Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *