Come duplicare un articolo WordPress con WPCode
Se pubblichi spesso articoli con una struttura simile, ricreare ogni volta tutto da zero può essere scomodo.
Con questo semplice snippet per WPCode puoi aggiungere il comando Duplica direttamente nella lista degli articoli WordPress.
Con un clic viene creata una nuova bozza che mantiene:
- titolo
- contenuto
- immagine in evidenza
- categorie
- tag
- estratto
- campi personalizzati
L’articolo originale non viene modificato e la nuova copia non viene pubblicata automaticamente.
Come installarlo
Vai in WordPress → WPCode → Add Snippet → Add Your Custom Code.

Seleziona PHP Snippet, incolla il codice riportato qui sotto, imposta l’esecuzione nell’area amministrativa e attiva lo snippet.

mpostazione consigliata in WPCode
Quando crei lo snippet in WPCode, impostalo per essere eseguito solo nell’area amministrativa di WordPress. In questo modo il codice viene caricato esclusivamente nella dashboard e nella lista degli articoli, senza aggiungere funzioni o codice inutile alle pagine visibili ai visitatori del sito.

Come utilizzarlo
Apri Articoli → Tutti gli articoli.
Passando con il mouse sopra un articolo comparirà il nuovo comando Duplica.

Facendo clic, WordPress creerà una nuova bozza e aprirà direttamente l’editor del nuovo articolo.
Puoi quindi modificare titolo e contenuto e pubblicarlo normalmente.
Funziona anche con i plugin SEO
Lo snippet non sostituisce Yoast SEO, All in One SEO, Rank Math o altri plugin SEO.
I dati SEO non vengono modificati direttamente dallo snippet. La copia viene creata come nuova bozza, lasciando al plugin SEO installato sul sito la gestione dei relativi metadati.
Attenzione
Prima di utilizzare lo snippet su un sito importante è consigliabile effettuare un backup. Lo snippet crea copie degli articoli, ma non elimina né modifica l’articolo originale.
Snippet pronto per WPCode
Nel campo PHP Snippet di WPCode copia tutto il contenuto del box:
<?php
/**
* BACKdigit - Duplica articoli WordPress
* Crea una nuova bozza senza modificare l'articolo originale.
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Aggiunge il link "Duplica" nella lista degli articoli.
*/
add_filter( 'post_row_actions', function( $actions, $post ) {
if ( 'post' !== $post->post_type ) {
return $actions;
}
if ( ! current_user_can( 'edit_post', $post->ID ) ) {
return $actions;
}
$url = wp_nonce_url(
admin_url( 'admin.php?action=backdigit_duplicate_post&post=' . $post->ID ),
'backdigit_duplicate_post_' . $post->ID
);
$actions['backdigit_duplicate'] = '<a href="' . esc_url( $url ) . '">Duplica</a>';
return $actions;
}, 10, 2 );
/**
* Esegue la duplicazione dell'articolo.
*/
add_action( 'admin_action_backdigit_duplicate_post', function() {
if ( ! isset( $_GET['post'] ) ) {
wp_die( 'Articolo non specificato.' );
}
$post_id = absint( $_GET['post'] );
if ( ! $post_id ) {
wp_die( 'Articolo non valido.' );
}
/**
* Controllo sicurezza.
*/
check_admin_referer( 'backdigit_duplicate_post_' . $post_id );
if ( ! current_user_can( 'edit_post', $post_id ) ) {
wp_die( 'Non hai i permessi necessari per duplicare questo articolo.' );
}
$original = get_post( $post_id );
if ( ! $original || 'post' !== $original->post_type ) {
wp_die( 'Articolo non trovato.' );
}
/**
* Crea la nuova bozza.
*/
$new_post = array(
'post_title' => $original->post_title . ' - Copia',
'post_content' => $original->post_content,
'post_excerpt' => $original->post_excerpt,
'post_status' => 'draft',
'post_type' => 'post',
'post_author' => get_current_user_id(),
'post_parent' => $original->post_parent,
'menu_order' => $original->menu_order,
'comment_status'=> $original->comment_status,
'ping_status' => $original->ping_status,
);
$new_post_id = wp_insert_post(
wp_slash( $new_post ),
true
);
if ( is_wp_error( $new_post_id ) ) {
wp_die(
'Errore durante la duplicazione: ' .
esc_html( $new_post_id->get_error_message() )
);
}
/**
* Copia categorie e tag.
*/
$taxonomies = array(
'category',
'post_tag',
);
foreach ( $taxonomies as $taxonomy ) {
$terms = wp_get_object_terms(
$post_id,
$taxonomy,
array(
'fields' => 'ids',
)
);
if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
wp_set_object_terms(
$new_post_id,
$terms,
$taxonomy
);
}
}
/**
* Copia l'immagine in evidenza.
*/
$thumbnail_id = get_post_thumbnail_id( $post_id );
if ( $thumbnail_id ) {
set_post_thumbnail(
$new_post_id,
$thumbnail_id
);
}
/**
* Copia i campi personalizzati.
*/
$custom_fields = get_post_meta(
$post_id
);
if ( ! empty( $custom_fields ) ) {
foreach ( $custom_fields as $meta_key => $meta_values ) {
foreach ( $meta_values as $meta_value ) {
add_post_meta(
$new_post_id,
$meta_key,
maybe_unserialize( $meta_value )
);
}
}
}
/**
* Apre direttamente la nuova bozza.
*/
wp_safe_redirect(
admin_url(
'post.php?post=' . $new_post_id . '&action=edit'
)
);
exit;
} );
Piccola nota tecnica: ho scelto volutamente di creare la copia come bozza e di assegnarla all’utente che effettua la duplicazione. In questo modo lo snippet è adatto anche a siti con più autori e riduce il rischio di pubblicare accidentalmente una copia.
WordPress
Controllare un articolo WordPress prima della pubblicazione con WPCode
Prima di pubblicare un articolo WordPress può essere utile avere un piccolo controllo finale per verificare che non…
WordPress 7.1.1: bug risolti e sicurezza migliorata
WordPress 7.1.1 è disponibile dal 17 settembre 2026 ed è un aggiornamento di manutenzione e sicurezza che interviene…
WordPress 7: perché l’editor ha due scorrimenti separati, soluzione rapida!
Se hai aggiornato a WordPress 7 e ti sei accorto che scrivere un articolo è diventato più scomodo,…
WordPress 7 introduce i Connettori: cosa sono, a cosa servono e quanto costano
Se hai aggiornato il tuo sito a WordPress 7, potresti aver notato una nuova voce Connettori nel pannello…
Wordfence 9.0 introduce le Passkey per proteggere il login di WordPress
Con Wordfence 9.0 arriva una nuova funzione dedicata alla sicurezza dell'accesso a WordPress: le Passkey. Si tratta di…
Evidenziare codice WordPress CSS durante lo scroll
Per evidenziare codice WordPress CSS durante lo scorrimento serve una combinazione di CSS e JavaScript: il CSS definisce…
Barra ricerca WordPress HTML CSS compatta nell’header
Una barra ricerca WordPress HTML CSS compatta può essere inserita nell’intestazione senza installare plugin e senza modificare i…
