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.
Altro per te
WordpressWordPress: come correggere l’anteprima mobile e tablet del Customizer
Con le versioni più recenti di WordPress, dalla 7 in poi, alcuni utenti potrebbero riscontrare un cambiamento nella visualizzazione delle anteprime responsive di Aspetto…
Piè di pagina WordPress CSS: griglia e separatori
Come Verificare Google Consent Mode sul Tuo Sito Web
Conviene passare a PHP 8.4 con WordPress? È sicuro aggiornare a PHP 8.4?
Nascondere le notifiche di aggiornamento del core WordPress nell’area admin
Come cambiare URL di login WordPress senza plugin
Come limitare i tentativi di login WordPress senza plugin
Come creare una pagina in manutenzione WordPress senza plugin
