Come duplicare correttamente le pagine in WordPress (con 2 modi)
Pubblicato: 2022-09-23Non perdere tempo a duplicare manualmente ogni pagina del tuo sito WordPress. Se hai intenzione di duplicare molte pagine, lascia che ti mostriamo 2 soluzioni per duplicare le pagine in WordPress in modo facile e veloce.
Quando è necessario duplicare le pagine in WordPress?
A volte, è necessario duplicare le pagine in WordPress per mostrare contenuti diversi ma nello stesso layout di pagina. Puoi farlo manualmente, il che significa che devi copiare il modello e gli elementi SEO, comprese le meta descrizioni e i tag del titolo. E questo processo viene ripetuto molte volte, il che richiede tempo e fatica.
Se hai bisogno di un'altra soluzione che sia più comoda e che faccia risparmiare tempo ma comunque altamente efficace, un suggerimento per te è duplicare le pagine in WordPress tramite plugin o file functions.php. Oggi vorremmo fornirti istruzioni dettagliate al riguardo. Iniziamo!
Come duplicare le pagine in WordPress
In realtà, ci sono due metodi principali per duplicare le pagine in WordPress. Il primo è utilizzare WordPress Duplicator Plugin per farlo. E un altro è aggiungere codice al file functions.php per generare pagine duplicate o persino post duplicati.
Tuttavia, ti consigliamo di scegliere un plug-in per raggiungere i tuoi obiettivi. L'aggiunta di codice all'editor di file del tema a volte causa un errore per il tuo sito WordPress e tutto diventa complicato. Quindi, è una buona idea per te ottenere una soluzione sicura.
Utilizzo dei plugin per duplicare le pagine in WordPress
Ad essere onesti, sul mercato attuale, sembrano numerosi utili plug-in per aiutarti a duplicare le pagine in WordPress. Tuttavia, vorremmo introdurre due plugin facili da usare ed efficaci: Yoast Duplicate Post e Duplicate Page and Post.
Ora, diamo un'occhiata alle istruzioni dettagliate per utilizzare Yoast Duplicate Post per il tuo sito WordPress.
- Accedi alla dashboard di amministrazione di WordPress -> Vai a Plugin -> Aggiungi nuovo .
- Trova Yoast Duplicate Post -> Installa e attivalo .
- Nella dashboard di amministrazione, scegli Apri pagina -> Tutte le pagine .
- Seleziona la pagina che desideri duplicare, ci saranno 2 nuove opzioni: Clona e Nuova bozza .
- Se speri di duplicare le pagine in WordPress , fai semplicemente clic sul pulsante Clona . Nel caso in cui sia necessario generare una nuova pagina contenente contenuto copiato , scegliamo l'opzione Nuova bozza .
Un altro plugin per aiutarti a clonare la pagina corrente è Duplicate Page and Post . Seguiamo il passaggio seguente:
- Accedi alla dashboard di amministrazione di WordPress -> Vai a Plugin -> Aggiungi nuovo .
- Cerca nella pagina duplicata e nel post -> Installa e attivalo .
- Accedi a Apri pagina -> Tutte le pagine .
- Fai clic sulla pagina che devi copiare, verrà visualizzata l'opzione Duplica per farlo. Dopo aver premuto su di esso, sarà disponibile una nuova bozza per modificare il contenuto.
Utilizzo del file Functions.php per duplicare le pagine in WordPress
Il secondo modo per duplicare le pagine in WordPress è inserire il codice nel file Functions.php. Per fare ciò, apriamo Aspetto -> Editor file tema -> Functions.php .
Ora è il momento di duplicare le pagine in WordPress aggiungendo il seguente frammento di codice al file 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);

Incartare
In breve, risparmiamo tempo nella clonazione delle pagine seguendo uno dei due metodi per duplicare le pagine in WordPress sopra. Se hai problemi relativi agli argomenti, perché non lasci il tuo commento qui sotto in modo che possiamo supportarti?
Ultimo ma non meno importante, non dimenticare che il nostro mercato offre numerosi temi WordPress gratuiti per dispositivi mobili e accattivanti. Quindi, non perderli se hai bisogno di ottenere un nuovo tema per il tuo sito WordPress!