Cómo duplicar una página o publicación en WordPress
Publicado: 2021-08-26¿Está buscando una forma de duplicar una página, publicación u otro tipo de contenido de WordPress?
Ser capaz de duplicar fácilmente el contenido de WordPress puede ser útil en todo tipo de situaciones, desde la creación masiva de contenido similar hasta la actualización de contenido antiguo, la modificación de un diseño y más.
En muchos casos, sin embargo, se trata de algo más que copiar y pegar texto entre diferentes páginas. Además del contenido que ha creado, es posible que también desee conservar su diseño y la configuración de la publicación, como sus categorías, etiquetas, autor, campos personalizados y otros metadatos.
En esta publicación, le brindaremos una guía completa sobre cómo puede duplicar completamente una página de WordPress, una publicación y más utilizando soluciones 100% gratuitas.
Al final, podrá duplicar cualquier contenido de su sitio con solo hacer clic en un botón; comencemos.
Tabla de contenido
- Cómo duplicar una publicación o página en WordPress: tres métodos
- Cómo duplicar una página de WordPress usando un complemento
- Publicación duplicada de Yoast
- Publicación duplicada
- WooCommerce
- Cómo duplicar una página de WordPress usando el editor
- Editor de bloques (Gutenberg)
- Elementor
- Cómo duplicar una página de WordPress manualmente con código
Cómo duplicar una publicación o página en WordPress: tres métodos
Hay tres métodos principales que puede utilizar para duplicar una página, publicación u otro tipo de publicación personalizada de WordPress:
- Complemento : la forma más fácil de duplicar una publicación o página es usar uno de los muchos complementos dedicados (la mayoría de los cuales son gratuitos).
- Editor : dependiendo de cuán minuciosamente desee duplicar el contenido, es posible que pueda usar solo el editor si solo le importa duplicar el contenido y el diseño.
- Código manual : para los aficionados al bricolaje, puede agregar un código personalizado al archivo functions.php de su tema hijo.
Cubriremos los tres métodos, repasemos por ellos ...
Cómo duplicar una página de WordPress usando un complemento
Hay muchos complementos que facilitan la duplicación de publicaciones, páginas u otro contenido en su sitio.
Si tiene una tienda WooCommerce, WooCommerce incluye su propia función incorporada para duplicar productos, más sobre eso a continuación. Y si no lo hace, encontrará muchos complementos gratuitos en WordPress.org, incluidos los siguientes:
- Publicación duplicada de Yoast
- Publicación duplicada
- Página duplicada
- Publicar duplicador
- Página y publicación duplicadas
Además de WooCommerce, le mostraremos cómo funciona con dos de los complementos gratuitos de la lista anterior:
- Yoast Duplicate Post porque es muy fácil de usar e incluye una función única "Reescribir y volver a publicar" que es excelente para actualizar el contenido existente.
- Publicación duplicada porque le brinda un control más granular en algunas áreas.
Ambos complementos son gratuitos y también probamos ambos para asegurarnos de que funcionen tanto con los diseños de Elementor como con el contenido creado con el editor nativo de WordPress. Imaginamos que todos los demás complementos anteriores también funcionarán con Elementor, aunque no los probamos específicamente.
Publicación duplicada de Yoast
Primero, echemos un vistazo a Yoast Duplicate Post. Este complemento es excelente si solo desea una forma rápida y fácil de duplicar publicaciones, páginas o cualquier otro tipo de publicación personalizada.
Además de permitirle clonar contenido, también incluye una función única Reescribir y volver a publicar que le ayuda a actualizar el contenido existente. Básicamente, esta función le permite duplicar el contenido para realizar cambios y luego "fusionar" la versión duplicada con la versión original cuando desee que los cambios estén activos.
Para comenzar, instale y active el complemento gratuito Yoast Duplicate Post de WordPress.org.
Ahora, tiene algunas formas diferentes de duplicar contenido.
Primero, puede ir a la lista principal de Publicaciones o Páginas . Si pasa el cursor sobre un elemento de la lista, verá tres opciones:
- Clonar: duplica el contenido y mantén la pestaña de tu navegador en la lista de publicaciones / páginas.
- Nuevo borrador : duplique el contenido y abra el editor del contenido duplicado para que pueda comenzar a trabajar de inmediato.
- Reescribir y volver a publicar : esta es una función útil para actualizar contenido antiguo, como comentamos anteriormente. La diferencia clave es que te permitirá fusionar el contenido con la publicación original una vez que hayas terminado.
El enfoque más simple es simplemente hacer clic en Clonar . Luego, verá aparecer en la lista una nueva entrada de borrador para el contenido duplicado. El complemento lo marcará con un aviso de "Borrador de personalización" para hacerle saber que es la versión duplicada:
En segundo lugar, también puede duplicar contenido desde dentro del editor de WordPress. Encontrarás estas opciones en la sección Estado y visibilidad de la barra lateral Publicación / Página :
Finalmente, también puede duplicar publicaciones o páginas de forma masiva utilizando las opciones del complemento en el menú desplegable de acciones masivas de la lista Publicaciones o Páginas :
- Use la casilla de verificación para seleccionar todas las publicaciones o páginas que desea duplicar.
- Elija el método de duplicación del menú desplegable: Clonar o Reescribir y volver a publicar .
- Haga clic en Aplicar .
Si desea personalizar el comportamiento del complemento, puede ir a Configuración → Publicación duplicada . Esta área le permite:
- Elija qué contenido duplicar.
- Agregue un prefijo o sufijo personalizado al título del contenido duplicado.
- Elija cómo ordenar el contenido duplicado en el menú.
- Seleccione los tipos de publicaciones para que sean elegibles para la duplicación.
- Elija qué roles de usuario tienen la capacidad de duplicar contenido.
- Personalice dónde mostrar los enlaces / botones de publicaciones duplicados.
Publicación duplicada
Publicación duplicada tiene la misma función básica que Publicación duplicada de Yoast, ya que facilita la duplicación rápida de una publicación o página.
Algunas ventajas de este complemento sobre Yoast Duplicate Post son que:
- Le permite duplicar una publicación / página varias veces con un solo clic. Por ejemplo, podría decirle que cree cuatro copias duplicadas.
- Te da un poco más de control sobre el contenido que duplicas entre publicaciones.
- Incluye una función para escanear su sitio en busca de contenido duplicado, lo cual es útil para encontrar duplicados rápidamente.
- Le permite copiar contenido entre diferentes sitios de red multisitio de WordPress, incluidos los de un subdominio (aunque esta función requiere el complemento premium de $ 19.98).
- Te da la opción de convertir publicaciones en páginas y viceversa (también requiere la versión premium).
Si no necesita esas funciones, le recomendamos que se quede con Yoast Duplicate Post ya que es más popular y hace el trabajo. Pero si desea esas características, esta es otra opción sólida a considerar.
Para comenzar, instale y active el complemento gratuito Duplicate Post de WordPress.org. Tan pronto como lo active, comenzará a funcionar.
Vaya a la lista Publicaciones / Páginas y coloque el cursor sobre el contenido que desea duplicar. Verá una nueva opción para Copiar . Si pasa el mouse sobre eso, expandirá algunas configuraciones adicionales para elegir cuántos duplicados hacer y qué configuraciones usar (más sobre esos en un segundo):
Al igual que con Yoast Duplicate Post, también puede usar las casillas de verificación y el menú desplegable de acciones masivas para realizar copias masivas de varias publicaciones.
Para configurar la configuración del complemento, puede ir a la nueva pestaña Copiar y eliminar publicaciones en su panel de WordPress. Aquí es donde puede configurar todos los ajustes, incluidos:
- Qué contenido duplicar.
- Quién puede duplicar contenido.
- Para qué tipos de publicaciones personalizadas habilitar la duplicación.
- Etc.
Una cosa buena es que puede crear múltiples perfiles de configuración y elegir qué configuración usar cuando duplica contenido.
Si se desplaza hasta la parte inferior del área de configuración, también puede encontrar la función para buscar contenido duplicado en su sitio:
Nuevamente, si solo desea una forma simple de duplicar contenido, le recomendamos que se quede con el complemento Yoast Duplicate Post. Pero si alguna de estas características le llamó la atención, Duplicate Post también funciona bien.
WooCommerce
Si está utilizando WooCommerce para crear una tienda de comercio electrónico, WooCommerce incluye su propia función incorporada para duplicar productos, sin necesidad de instalar un complemento por separado.
Para duplicar un producto, vaya al área Productos en su panel de control. Luego, coloque el cursor sobre el producto que desea duplicar y haga clic en Duplicar :
También puede duplicar un producto desde el interior del editor de productos haciendo clic en la opción Copiar a un nuevo borrador en la configuración de publicación :
Nota : estas opciones solo aparecen en productos. Si desea duplicar publicaciones y páginas, deberá instalar uno de los complementos de arriba.
Cómo duplicar una página de WordPress usando el editor
Si lo que más le preocupa es duplicar el contenido / diseño de una publicación o página, es posible que esté bien sin un complemento gracias a algunas funciones integradas del editor.
En esta sección, le mostraremos cómo duplicar rápidamente un diseño que ha creado con el editor de bloques nativo (Gutenberg) o Elementor.
Es importante tener en cuenta que ambos métodos solo duplicarán el contenido y el diseño; deberá recrear manualmente cualquier metadato importante, como el título, las categorías, las etiquetas, los campos personalizados, etc.
Editor de bloques (Gutenberg)
Para duplicar rápidamente el contenido del editor de bloques, comience por abrir el editor de la publicación o página que desea duplicar.
Haga clic en el icono de tres puntos en la esquina superior derecha para expandir el menú. Luego, elija la opción Copiar todo el contenido :
Ahora, cree una nueva publicación o página. Luego, haga clic en el editor y pegue el contenido. Tu también puedes:
- Utilice un método abreviado de teclado como Ctrl + V o Cmd + V.
- Haga clic derecho y elija pegar.
Debería ver una copia exacta del contenido original en el editor. Sin embargo, deberá asegurarse de agregar manualmente el título, las categorías, las etiquetas, etc.
Elementor
Nota : puede duplicar páginas o publicaciones creadas con Elementor utilizando los complementos que mencionamos anteriormente. Pero si lo que más le preocupa es duplicar el diseño de una publicación / página de Elementor (en lugar de otros metadatos como el autor y las categorías), puede hacerlo utilizando el sistema de plantillas de Elementor.
Tenemos una guía sobre cómo duplicar una página de Elementor, pero esta es la idea básica.
Primero, puede guardar su diseño como una plantilla desde la interfaz del editor de Elementor:
Luego, puede crear una nueva publicación o página e insertar la plantilla de la biblioteca de plantillas de Elementor.
Si desea duplicar más de una sola página, también puede utilizar la función de kits de sitios web de Elementor para exportar / importar diseños de sitios web completos.
La función de importación / exportación de Elementor le permite importar sus propias creaciones y crear un nuevo sitio web en segundos. Simplemente cree un plano que pueda usarse para múltiples proyectos o reutilice su creación web favorita. Luego, exporte todo el sitio web y aplíquelo a sus otros proyectos.
Puede utilizar su propia creación o elegir de nuestra biblioteca de kits de sitios web hechos por diseñadores. Simplemente aplíquelo a su sitio web, agregue contenido y hágalo suyo.
Cómo duplicar una página de WordPress manualmente con código
Si prefiere el enfoque de hágalo usted mismo (DIY), también puede crear su propia función de página duplicada utilizando algún código personalizado. Este método no agrega ningún beneficio sobre la ruta del complemento más allá de eliminar la necesidad de instalar otro complemento en su sitio.
Sin embargo, si evitar otro complemento es importante para usted, este enfoque está bien y funcionará con el contenido del editor normal y Elementor.
Para usar este código, debe agregarlo al archivo functions.php de su tema o un complemento de administración de código como Code Snippets. Si lo agrega al archivo functions.php , asegúrese de usar un tema hijo.
<?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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
<?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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
<?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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
De forma predeterminada, el fragmento permite la duplicación tanto de publicaciones como de páginas. Si solo desea habilitarlo para uno u otro, puede eliminar el filtro page_row_actions o post_row_actions en la parte inferior del fragmento de código.
Mejore su proceso de creación web duplicando páginas y publicaciones
Ser capaz de duplicar una página, publicación u otro tipo de publicación de WordPress es muy útil cuando se trabaja en un sitio de WordPress.
En esta publicación, compartimos tres métodos diferentes que puede usar para duplicar contenido.
Para la mayoría de las personas, la forma más fácil de clonar completamente una publicación o página es a través del complemento gratuito Yoast Duplicate Post. Comienza a funcionar de inmediato y funciona con el editor de bloques (Gutenberg), Elementor y el editor Classic TinyMCE. También funciona con todos los tipos de publicaciones, desde páginas hasta publicaciones y cualquier tipo de publicación personalizada que pueda estar utilizando.
Si tiene una tienda WooCommerce, también puede usar la función incorporada de WooCommerce para duplicar productos. O puede agregar algún código personalizado a su sitio si prefiere no instalar otro complemento.
Por último, si solo necesita duplicar el contenido / diseño de una publicación, puede usar el sistema de plantillas de Elementor o usar la opción del editor de bloques para copiar todo el contenido.
Antes de irnos, un recordatorio rápido. No desea publicar contenido duplicado en la mayoría de las situaciones, ya que puede afectar negativamente su SEO. Entonces, si está duplicando una página sin cambiar su contenido (tal vez solo para cambiar la URL), querrá considerar redirigir la página original una vez que haya terminado.
¿Todavía tiene alguna pregunta sobre cómo duplicar una página o publicación de WordPress? Infórmenos en la sección para comentarios.