Cómo Duplicar Páginas Correctamente en WordPress (con 2 formas)

Publicado: 2022-09-23

No pierda el tiempo duplicando manualmente cada página de su sitio de WordPress. Si tiene la intención de duplicar muchas páginas, permítanos mostrarle 2 soluciones para duplicar páginas en WordPress de una manera fácil y rápida.

¿Cuándo necesitas duplicar páginas en WordPress?

A veces, necesita duplicar páginas en WordPress para mostrar contenido diferente pero en el mismo diseño de página. Puede hacerlo manualmente, lo que significa que debe copiar la plantilla y los elementos de SEO, incluidas las metadescripciones y las etiquetas de título. Y este proceso se repite muchas veces, lo que requiere su tiempo y esfuerzo.

Si necesita otra solución que sea más conveniente y que ahorre tiempo pero que sea altamente efectiva, una sugerencia para usted es duplicar páginas en WordPress a través de complementos o el archivo functions.php. Hoy, nos gustaría brindarle instrucciones detalladas al respecto. ¡Empecemos!

Cómo duplicar páginas en WordPress

En realidad, existen dos métodos principales para duplicar páginas en WordPress. El primero es usar los complementos de WordPress Duplicator para hacer eso. Y otra es agregar código al archivo functions.php para generar páginas duplicadas o incluso publicaciones duplicadas.

Sin embargo, le recomendamos que elija un complemento para lograr sus objetivos. Agregar código al editor de archivos de temas a veces provoca un error en su sitio de WordPress y todo se vuelve complicado. Por lo tanto, es una buena idea que obtenga una solución segura.

Uso de complementos para duplicar páginas en WordPress

Para ser honesto, en el mercado actual, aparecen numerosos complementos útiles para ayudarlo a duplicar páginas en WordPress. Sin embargo, nos gustaría presentar dos complementos fáciles de usar y efectivos: Yoast Duplicate Post y Duplicate Page and Post.

Ahora, echemos un vistazo a las instrucciones detalladas para usar Yoast Duplicate Post para su sitio de WordPress.

  • Inicie sesión en su panel de administración de WordPress -> Vaya a Complementos -> Agregar nuevo .
  • Encuentra Yoast Duplicate Post -> Instálalo y actívalo .
  • En el panel de administración, seleccione Abrir página -> Todas las páginas .
  • Seleccione la página que desea duplicar, habrá 2 nuevas opciones: Clonar y Nuevo borrador .
  • Si espera duplicar páginas en WordPress , simplemente haga clic en el botón Clonar . En caso de que necesite generar una nueva página que contenga contenido copiado , elija la opción Nuevo borrador .

Just Yoast Publicar duplicado para duplicar páginas en Wordpress

Otro complemento para ayudarlo a clonar la página actual es Duplicate Page and Post . Sigamos el siguiente paso:

  • Inicie sesión en su panel de administración de WordPress -> Vaya a Complementos -> Agregar nuevo .
  • Buscar página duplicada y publicación -> Instalarla y activarla .
  • Acceda a Abrir página -> Todas las páginas .
  • Haga clic en la página que necesita copiar, aparecerá la opción Duplicar para que pueda hacerlo. Después de presionarlo, un nuevo borrador estará disponible para que edite el contenido.

Use la página duplicada y la publicación para duplicar páginas en Wordpress

Uso del archivo Functions.php para duplicar páginas en WordPress

La segunda forma de duplicar páginas en WordPress es insertar el código en el archivo Functions.php. Para hacerlo, abramos Appearance -> Theme File Editor -> Functions.php .

Páginas duplicadas en Wordpress a través de Functions.php

Ahora es el momento de duplicar páginas en WordPress agregando el siguiente fragmento de código al 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('page_row_actions', 'rd_duplicate_post_link', 10, 2);

Envolver

En resumen, ahorremos tiempo en la clonación de páginas siguiendo uno de los dos métodos para duplicar páginas en WordPress anteriores. Si tiene algún problema relacionado con los temas, ¿por qué no deja su comentario a continuación para que podamos ayudarlo?

Por último, pero no menos importante, no olvide que nuestro mercado ofrece numerosos temas de WordPress gratuitos atractivos y aptos para dispositivos móviles. Entonces, ¡no te los pierdas si necesitas un nuevo tema para tu sitio de WordPress!