¿Alguna vez has estado en una situación en la que quieres cambiar el diseño de tu página actual pero quieres mantener el contenido para usar en el futuro? Si bien puedes copiar y pegar todo el contenido en un borrador, esto no eliminaría las plantillas de página, las imágenes destacadas y la optimización SEO, entre otros datos relacionados.
Hay momentos en los que puede ser necesario clonar tu blog o página actual solo para realizar algunas modificaciones en una de las copias y compararla con la versión anterior. Hay muchas situaciones en las que solo necesitas duplicar una página o publicación de WordPress.
Es inútil tener que hacerlo dos veces cuando puedes ahorrar tiempo duplicando la página o entrada de WordPress con un solo clic. En esta guía, hablaremos sobre cómo duplicar una página de WordPress utilizando plugins, ya que es la forma más simple y fácil de hacerlo.
Video Tutorial:
1. Utilizar el plugin Duplicate Post
Una de las formas más fáciles de clonar una página o entrada de WordPress es con el plugin Duplicate Post. No solo te permite clonar, sino que también puedes agregar personalizaciones. Es posible incluir un sufijo o prefijo predefinido antes o después del título de la página o la entrada clonada. Además, puedes restringir la funcionalidad del plugin según los roles del usuario.
Sigue estos pasos para clonar tu entrada/página con este plugin:
- Instala y activa el plugin.
- Luego, haz clic en Páginas y luego en Todas las páginas.
- Pasa el cursor sobre la entrada o página que deseas clonar y verás una opcion nueva: Copiar.
2. Usar el plugin Duplicate Page and Post
Otro plugin que se puede usar para clonar páginas y entradas rápidamente es Duplicate Page and Post. El plugin permite la creación de duplicados de una página o entrada mientras se asegura de que todo el contenido, el título y el estilo de la página o la entrada permanezcan intactos.
Este plugin es muy simple de usar. Basta con seguir estos pasos:
- Activar e instalar el plugin Duplicate Page and Post.
- Si deseas crear una copia clonada de una página, ve a Páginas -> Todas las páginas o a Entradas -> Todas las entradas.
- Hacer clic en «Duplicate» después de seleccionar la entrada que desea clonar.
3. Usar Post Duplicator para clonar entradas y páginas de WordPress
Si los dos plugins anteriores no satisfacen tus necesidades, puedes usar Post Duplicator. Este plugin te permitirá crear una copia precisa de la entrada seleccionada mientras mantiene los campos y taxonomías personalizados.
Todo lo que necesitas hacer es:
- Instala y activa el plugin.
- Para crear una copia clonada, selecciona la entrada o la página que deseas duplicar y luego haz clic en «Duplicar entrada» o «Duplicar página«.
- El complemento duplicará la página o entrada de inmediato.
4. Duplicar una entrada o página de WordPress sin plugins
También puedes usar código para duplicar páginas y entradas de WordPress además de plugins. Simplemente pega este código en su archivo functions.php. Puedes usar el Administrador de archivos, el cliente FTP o el editor de archivos de WordPress incorporado para hacer esto.
Para duplicar una entrada, pegue el fragmento de código a continuación en su 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 );
El proceso de duplicar una página en WordPress es muy simple. Simplemente reemplaza la última línea del código anterior con el fragmento siguiente:
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
Ahora, deberías ver un botón Duplicar si vas a la sección Todas las entradas o Todas las páginas.
WordPress creará una copia de la página o entrada y la guardará como borrador si presionas este botón.
Conclusiones
Los plugins mencionados anteriormente son confiables y rápidos para clonar y duplicar una página o entrada en WordPress. ¿Por qué dedicar tiempo a una tarea si puede terminarla con unos pocos clics?
No te pierdas de nuestros planes de hosting para que tu sitio WordPress siga creciendo.