Cómo clonar o duplicar una página web en Wordpress sin plugins

El internet es una de las herramientas más útiles que el hombre ha inventado en este tiempo y ha servido para múltiples tareas. Estas van desde tener toda la información que quieras en la palma de tu mano hasta poder trabajar en ella y tener grandes ingresos

Cómo Clonar o Duplicar una Página Web en WordPress sin Plugins

Existen diversas herramientas que te brindan el servicio de alojar tu página web pero ninguna como WordPress. Esta es una excelente herramienta de gestión de páginas que te proporcionara todo lo que necesitas para tener una página con acabado profesional gracias a que puedes instalar diferentes plantillas o temas en WordPress.

¿Cómo duplicar una página sin Plugins?

Antes de comenzar es aconsejable de que hagas una copia de seguridad de esa forma  si cometes cualquier error mientras realizas el proceso podrás restaurar todo de nuevo. Dicho esto demos comienzo con la explicación de como clonar o duplicar una página web en WordPress fácilmente sin plugins. También te interesará conocer sobre cuáles son los mejores plugins para maquetar y editar en WordPress.

manos tocando cuadros con texto con fondo morado

El único método no es solo usando plugins, puedes hacerlo a través de un código que duplicará páginas de WordPress, debes usar el siguiente código:

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

¿Por qué usar este código?

pagina wordpress con codigos de programacion

 

Porque de esta manera podrás copiar el sitio web. Simplemente debes pegar el código en tu archivo functions.php. Esto es posible hacerlo gracias al Editor de archivos de WordPress. Dirígete a Todas las entradas y presiona el botón Duplicar y automáticamente WordPress creará una copia y la guardará como borrador lo que hará tu sitio lucir al que tú buscas.

Subir