Cómo duplicar una página/publicación de WordPress fácilmente

Publicado: 2021-11-05
duplicar contenido en wordpress

Duplicar el contenido existente de páginas o publicaciones puede ser útil en muchas situaciones. Puede usar la publicación/página principal como plantilla y completar rápidamente su tarea. ¿Puedes pensar cuánto tiempo te costaría si tuvieras que recrear los contenidos de la misma página/publicación?

Bueno, no puedo imaginar eso. Afortunadamente, hay formas de duplicar contenido en la página/publicación de WordPress. En esta publicación, le mostraré cómo duplicar una página/publicación de WordPress al instante.

Comencemos entonces.

Tabla de contenido
  • ¿Por qué duplicar la página/publicación de WordPress?
  • Contenido duplicado en WordPress con complemento
  • Página/Publicación duplicada de WordPress sin un complemento
  • Ultimas palabras

¿Por qué duplicar la página/publicación de WordPress?

Cuando traiga algunos cambios nuevos en su página o publicación, es posible que deba clonar rápidamente la página/publicación.

Por ejemplo, tienes una página de ventas con muchas secciones; ahora necesita volver a crear la misma página de ventas para un producto diferente, ¿qué hará? ¿Crear toda la página de nuevo?

Por supuesto que no. Podrá obtener exactamente la misma página duplicándola. Podrá comenzar a trabajar en él de inmediato y ahorrar tiempo. Puede duplicar la página/publicación de WordPress de dos maneras: 1. Con un complemento, 2. Sin un complemento.

Contenido duplicado en WordPress con complemento

Hay un par de complementos como: página duplicada, duplicador de publicaciones, página duplicada y publicación, página y cualquier publicación personalizada; que te ayudan a duplicar la página/publicación de WordPress al instante. Pero el más popular es Yoast Duplicate Post.

Primero, instale y active el complemento Yoast Duplicate Post desde el directorio de complementos de WordPress.

Desde el tablero, ve a Publicar -> Todas las publicaciones. (Para duplicar una página, vaya a Páginas -> Todas las páginas)

Ahora pase el cursor sobre cualquier publicación y verá dos nuevas opciones: 'Clonar y Nuevo borrador'.

Ahora haga clic en el botón de clonar para duplicar la publicación.

Sin embargo, si desea crear un clon y abrirlo inmediatamente en el editor de publicaciones, haga clic en el botón 'Nuevo borrador'.

Página/Publicación duplicada de WordPress sin un complemento

Si no desea un aumento en la cantidad de complementos instalados, puede seguir este método. Es muy simple, todo lo que tiene que hacer es copiar algunos códigos en el archivo function.php y luego podrá duplicar la página/publicaciones de WordPress muy fácilmente.

Nota: antes de editar cualquiera de los archivos de WordPress, se recomienda hacer una copia de seguridad de su sitio web primero.

Al principio, vaya a Apariencia -> Editor de temas y haga clic en 'Funciones de temas'. Ahora copia el siguiente código y pégalo aquí.

 /* * 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 );

No olvide actualizar el archivo.

El código anterior funcionará para duplicar publicaciones. Si desea duplicar páginas, simplemente reemplace la última línea con el siguiente código:

 add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);

Ultimas palabras

Espero que ahora tenga la manera fácil de duplicar la página/publicación de WordPress. No importa si usa un complemento o no; obtendrás el mismo resultado en ambos sentidos. Si tiene alguna pregunta o sugerencia, hágamelo saber a través del cuadro de comentarios a continuación.