Dupliquer des pages ou des articles

Dans cet article, nous allons vous montrer quelques-unes des méthodes que vous pouvez utiliser pour faire cela, et mettre en évidence certains des meilleurs plugins pour cette tâche.

Mais d’abord, nous allons vous montrer comment dupliquer une page ou un article dans WordPress de manière semi-manuelle, sans plugin. Cela implique un copier-coller mais WordPress le rend si facile à faire que, si vous n’avez qu’un seul article à copier, ce sera probablement plus rapide que d’installer un plugin et de le faire de cette façon.

Besoin de créer beaucoup d’articles/pages similaires qui ne sont pas identiques à 100% ? 🐴🦄 Ne perdez pas votre temps à partir de zéro. Dupliquez-les tous !CLIQUEZ POUR TWEET

Comment dupliquer une page ou un article dans WordPress, la méthode semi-manuelle

Cette méthode peut être plus rapide si vous n’avez qu’un seul article à dupliquer, car elle vous fait gagner du temps pour installer un plugin. Si vous avez un tas d’articles à dupliquer, je vous recommande sérieusement de sauter cette section : vous trouverez beaucoup plus rapide, pour ne pas dire plus précis, d’utiliser un plugin.

Donc, pour ceux d’entre vous qui ont juste besoin de dupliquer un article ou une page, voici comment le faire.

Commencez par ouvrir votre article ou votre page existante. Assurez-vous que vous n’avez pas de bloc individuel sélectionné en cliquant à l’extérieur d’un bloc sur votre article ou en sélectionnant l’onglet Document dans le volet d’édition à droite de l’écran. Si vous avez sélectionné un bloc, WordPress copiera simplement le contenu de ce bloc et non le document entier.

Cliquez maintenant sur l’ellipse en haut à droite de l’écran de montage (trois points disposés les uns au-dessus des autres).

L'option copier tout le contenu dans WordPress

L’option copier tout le contenu dans WordPress

Un menu s’affiche. Vers le bas de ce menu, vous verrez une option Copier tout le contenu. Cliquez dessus et vous recevrez un article vous indiquant que votre contenu a été copié.

Créez maintenant votre nouvel article. Donnez un titre à votre article puis cliquez dans le premier bloc vide qui a été créé pour vous sur l’écran d’édition. Utilisez les touches de raccourci pour coller sur votre clavier (Ctrl + V sur un PC, Cmd + V sur un Mac, ou faites un clic droit et sélectionnez Coller dans le menu contextuel qui apparaît.

Le contenu de votre ancien article apparaîtra maintenant dans votre nouvel article. C’est de la magie ! (OK, peut-être pas.)

Maintenant vous pouvez éditer cet article et le rendre différent de l’ancien. C’est quelque chose que je vous conseille fortement de faire – il n’y a pas beaucoup d’intérêt à avoir des articles de blog qui sont exactement des doublons les uns des autres sur votre site. Non seulement cela embrouillera les visiteurs, mais c’est aussi mauvais pour le référencement.

Mais que faire si vous voulez créer plusieurs doublons de votre article ? Lire la suite…

Comment dupliquer une page ou article dans WordPress à l’aide d’un plugin

De loin le moyen le plus rapide, le plus simple et le plus fiable pour dupliquer des articles est d’utiliser un plugin. Cela vous permettra de gagner du temps, d’éviter toute erreur humaine et de copier n’importe quel type d’article que vous souhaitez. En fait, d’après notre expérience, la duplication d’articles est en fait plus courante avec les types de posts personnalisés. Il est inhabituel d’avoir deux articles de blog qui sont presque identiques l’un à l’autre, mais c’est assez commun pour les produits dans une boutique, par exemple.

Voici donc quelques plugins qui rendront le processus de duplication des articles facile, et des conseils sur la façon de les utiliser.

WooCommerce

Vous vous demandez peut-être pourquoi j’ai inclus WooCommerce ici, car il s’agit d’un plugin de eCommerce, pas d’un plugin de duplication.

Mais il est important de savoir que WooCommerce vous permet de dupliquer des produits sans avoir à installer un plugin supplémentaire. Donc avant de commencer à chercher un plugin de duplication de post et de l’utiliser pour dupliquer vos produits, il vous suffit d’utiliser les fonctionnalités qui sont fournies avec WooCommerce.

Si vous allez sur l’écran principal Produits dans WooCommerce et passez votre souris sur n’importe quel produit, vous verrez un lien Dupliquer sous cet article.

L'option de duplication dans WooCommerce

L’option de duplication dans WooCommerce

Cliquez simplement sur ce lien Dupliquer et un nouveau produit sera créé. Vous serez directement dirigé vers l’écran d’édition du nouveau produit pour que vous puissiez y apporter des modifications et ensuite le publier.

Il est à noter que le slug pour le nouveau produit sera le slug pour l’ancien produit avec -copy ajouté, donc même si vous changez le titre du nouveau produit, vous devrez également modifier le slug.

Édition d'un produit dupliqué

Édition d’un produit dupliqué

Duplicate Post

Duplicate Post est le plugin le plus populaire pour dupliquer des articles, avec plus de 3 millions de téléchargements.

Une fois que vous l’avez activé, il ajoute un lien Cloner à chaque article dans l’écran principal des articles dans l’administration WordPress.

Le plugin Duplicate Post

Le plugin Duplicate Post

Cliquez sur le lien Cloner sous l’article que vous voulez dupliquer, et un nouvel article sera créé pour vous avec le même contenu, le même titre et un statut de brouillon.

Vous pouvez ensuite éditer ce nouvel article et lui donner un nouveau titre (ce que je vous conseille fortement – WordPress vous permet de dupliquer les titres mais ce n’est pas très bon pour l’expérience utilisateur).

Il ajoute également le même lien Cloner aux pages et aux types de posts personnalisés (si vous les activez dans les paramètres).

Duplicate Page

Le plugin Duplicate Page a été téléchargé plus de 900 000 fois et est une alternative au plugin Duplicate Post ci-dessus.

Une fois le plugin installé, allez à l’écran d’administration des articles ou des pages, ou à l’écran d’administration de votre type de post personnalisé, et vous trouverez un lien Duplicate This sous chaque article. Voici le mien avec un type de post personnalisé :

Le plugin Duplicate Page

Le plugin Duplicate Page

Cliquez sur le lien et vous obtiendrez un nouvel article (ou une page, ou un article de votre type de post personnalisé) avec le même contenu et le même titre que l’article original, avec un statut de brouillon. Vous devrez l’éditer et modifier son slug avant de le publier.

Note : Si vous utilisez WooCommerce, le lien Dupliquer de ce plugin ne sera pas affiché sur votre écran Produits. WooCommerce l’écrase avec son propre lien Duplicate que j’ai décrit plus tôt dans cet article.

Comment dupliquer des articles ou des pages en masse

Les plugins que j’ai déjà mentionnés vous permettront de dupliquer les articles un à la fois. Mais que faire si vous avez besoin de dupliquer tous les articles de votre site, ou tous les articles d’un type de post personnalisé ? Ou peut-être tous les articles que vous avez publiés cette année ?

Le plugin WP Bulk Post Duplicator vous permettra de faire exactement cela. Au lieu d’ajouter un lien pour dupliquer des articles individuels, il vous donne un écran de paramétrage qui vous permet de dupliquer des articles en masse selon les critères que vous avez définis.

Note : Ce plugin n’a pas été mis à jour depuis deux ans au moment d’écrire ces lignes, nous vous conseillons donc de l’installer sur un site de développement et de le tester avant de l’utiliser sur un site en productiont. Nous l’avons utilisé sur notre site de test sans problème.

Une fois le plugin installé, allez dans Paramètres > WP Bulk Post Duplicator pour voir l’écran des paramètres du plugin.

Commencez par sélectionner les types d’articles que vous voulez dupliquer ainsi que les statuts des articles. Ainsi, si vous sélectionnez un article et le publiez, le plugin dupliquera tous vos articles publiés. Si au lieu de cela vous sélectionnez des articles et des brouillons, il ne fera que dupliquer tous vos articles.

Réglages de la duplication en masse - type de post et statut

Réglages de la duplication en masse – type de post et statut

Faites défiler vers le bas et sélectionnez l’année des articles que vous voulez dupliquer (ceci est facultatif). Vous pouvez également spécifier le statut des nouveaux articles créés. Si vous ne sélectionnez rien ici, la valeur par défaut sera Draft (Brouillon).

Réglages de duplication en masse - année et statut de publication

Réglages de duplication en masse – année et statut de publication

Cliquez sur le bouton Dupliquer et le plugin dupliquera vos articles. Ici, vous pouvez voir toutes mes pages dupliquées, avec 12 pages publiées existantes et 12 nouvelles pages brouillons. J’ai ensuite besoin de travailler sur toutes les pages et les éditer avant de les publier. Cela prendra évidemment du temps, mais cela a été rendu plus rapide par la duplication en masse,

Écrivez votre propre plugin de duplication

Que faire si vous ne voulez pas utiliser un plugin tiers pour dupliquer des articles et que vous préférez utiliser votre propre code?

Pas de problème. Suivez simplement ces étapes pour créer votre propre plugin de duplication d’articles.

1. Configuration du plugin

Commencez par configurer le plugin. Ajoutez un nouveau fichier dans votre dossier wp-content/plugins et ajoutez-y ce texte commenté (vous pouvez modifier le vôtre pour refléter le nom de votre auteur) :

<?php
/*
Plugin Name: Kinsta Duplicate posts and pages
Plugin URI: https://kinsta.com
Description: Plugin to accompany kinsta posst on duplicating posts in WordPress. Allows for duplication of posts and pages.
Version: 1.0
Author: Rachel McCollin
Author URI: https://rachelmccollin.com
TextDomain: kinsta
License: GPLv2
*/

2. Création de la fonction

Ajoutez maintenant la fonction pour dupliquer les articles et accrochez-la à un hook d’action. Ce hook d’action n’existe pas encore : ne vous inquiétez pas, nous allons bientôt le créer.

function kinsta_duplicate_post(){
}
add_action( 'admin_action_kinsta_duplicate_post', 'kinsta_duplicate_post' );

Maintenant, créons cette action, qui fera partie d’une fonction permettant d’ajouter le lien de duplication aux écrans des articles et des pages.

function kinsta_duplicate_post_link( $actions, $post ) {
 if ( current_user_can( 'edit_posts') ) {
  $actions['duplicate'] = 'Duplicate';
 }
 return $actions;
}
add_filter( 'post_row_actions', 'kinsta_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'kinsta_duplicate_post_link', 10, 2);

Cela ajoutera le lien pour dupliquer, mais il ne dupliquera rien pour l’instant.

3. Ajout de fonctionnalités de duplication

Ajoutons le code pour la duplication. Tout le reste du code va dans votre fonction kinsta_duplicate_post() vide.

Tout d’abord, vérifions qu’un article valide a été sélectionné et vérifions qu’il n’y a pas de nonce, par sécurité :

global $wpdb;

// Die if post not selected
if (! ( isset( $_GET['post']) || isset( $_POST['post'])  || ( isset($_REQUEST['action']) && 'kinsta_duplicate_post' == $_REQUEST['action'] ) ) ) {
 wp_die( __( 'Please select a post to duplicate.', 'kinsta' ) );
}

// Verify nonce
if ( ! isset( $_GET['duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) {
 return;
}

Il nous faut maintenant récupérer l’ID de l’article à dupliquer, ainsi que ses données :

// Get id of post to be duplicated and data from it
$post_id = ( isset( $_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
$post = get_post( $post_id );

Nous pouvons l’utiliser pour définir un tableau d’arguments et insérer un nouvel article dans la base de données, en utilisant wp_insert_post(), mais d’abord, ajouter une instruction conditionnelle pour vérifier que l’article n’est pas nul :

if ( isset( $post ) && $post != null ) {

}

Ajoutez ceci à l’intérieur de cette déclaration conditionnelle :

// args for new post
$args = array(
 'comment_status' => $post->comment_status,
 'ping_status'    => $post->ping_status,
 'post_author'    => $post->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 new post
$new_post_id = wp_insert_post( $args );

Nous allons maintenant aller chercher les taxonomies dans l’ancien post et les ajouter au nouveau :

// add taxonomy terms to the new post

// identify taxonomies that apply to the post type
$taxonomies = get_object_taxonomies( $post->post_type );

// add the taxonomy terms to the new post
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 );
}

Ensuite, nous ajouterons toutes les métadonnées d’articles supplémentaires, à l’aide d’une requête SQL :

// use SQL queries to duplicate postmeta
$post_metas = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
if ( count( $post_metas )!=0 ) {
 
$sql_query = "INSERT INTO $wpdb->postmeta ( post_id, meta_key, meta_value ) ";
 
foreach ( $post_metas as $post_meta ) {
  $meta_key = $post_metas->meta_key;
  if( $meta_key == '_wp_old_slug' ) continue;
  $meta_value = addslashes( $post_metas->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 );

}

Enfin, nous vérifions de quel type d’article il s’agit et redirigeons vers l’écran correspondant.

// redirect to admin screen depending on post type
$posttype = get_post_type( $post_id );
wp_redirect( admin_url( 'edit.php?post_type=' . $posttype ) );

Maintenant, en dehors de l’accolade pour if ( isset( $post ) && $post != null )nous ajoutons un article d’erreur :

else {
 // display an error message if the post id of the post to be duplicated can't be found
 wp_die( __( 'Post cannot be found. Please select a post to duplicate.', 'kinsta' ) );
}

Et c’est tout !

Le plugin complet

Voici le code complet du plugin :

<?php /* Plugin Name: Kinsta Duplicate posts and pages Plugin URI: https://kinsta.com Description: Plugin to accompany kinsta posst on duplicating posts in WordPress. Allows for duplication of posts and pages. Version: 1.0 Author: Rachel McCollin Author URI: https://rachelmccollin.com TextDomain: kinsta License: GPLv2 */ /******************************************************************** kinsta_duplicate_post() - duplicates the selected post *********************************************************************/ function kinsta_duplicate_post(){ global $wpdb; // Die if post not selected if (! ( isset( $_GET['post']) || isset( $_POST['post'])  || ( isset($_REQUEST['action']) && 'kinsta_duplicate_post' == $_REQUEST['action'] ) ) ) { wp_die( __( 'Please select a post to duplicate.', 'kinsta' ) ); } // Verify nonce if ( ! isset( $_GET['duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) { return; } // Get id of post to be duplicated and data from it $post_id = ( isset( $_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) ); $post = get_post( $post_id ); // duplicate the post if ( isset( $post ) && $post != null ) { // args for new post $args = array( 'comment_status' => $post->comment_status,
'ping_status'    => $post->ping_status,
'post_author'    => $post->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 new post
$new_post_id = wp_insert_post( $args );

// add taxonomy terms to the new post

// identify taxonomies that apply to the post type
$taxonomies = get_object_taxonomies( $post->post_type );

// add the taxonomy terms to the new post
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 );

}

// use SQL queries to duplicate postmeta
$post_metas = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");

if ( count( $post_metas )!=0 ) {
 
 $sql_query = "INSERT INTO $wpdb->postmeta ( post_id, meta_key, meta_value ) ";

 foreach ( $post_metas as $post_meta ) {

  $meta_key = $post_metas->meta_key;
  if( $meta_key == '_wp_old_slug' ) continue;
  $meta_value = addslashes( $post_metas->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 );

 }

 // redirect to admin screen depending on post type
 $posttype = get_post_type( $post_id );
 wp_redirect( admin_url( 'edit.php?post_type=' . $posttype ) );

 } else {

  // display an error message if the post id of the post to be duplicated can't be found
  wp_die( __( 'Post cannot be found. Please select a post to duplicate.', 'kinsta' ) );
 }

}
add_action( 'admin_action_kinsta_duplicate_post', 'kinsta_duplicate_post' );

// Add the duplicate link to action list for post_row_actions
function kinsta_duplicate_post_link( $actions, $post ) {

 if ( current_user_can( 'edit_posts') ) {
  $actions['duplicate'] = 'Duplicate';
 }

 return $actions;

}
add_filter( 'post_row_actions', 'kinsta_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'kinsta_duplicate_post_link', 10, 2);

Vous pouvez aussi trouver le plugin complet sur github.

Félicitations ! Vous avez maintenant votre propre plugin pour dupliquer les articles et les pages de votre site WordPress.

Crédit : Ce code a été en partie écrit en référence à un post sur le blog d’Hostinger.

Résumé

L’utilisation d’un plugin pour dupliquer des articles et des pages peut être plus rapide que de le faire manuellement et peut éliminer le risque d’erreurs lors de la copie de contenu.

Si vous n’avez qu’un seul article à copier, vous trouverez peut-être plus rapide d’utiliser la fonction « Copier tout le contenu » intégrée dans WordPress, mais pour plus d’un article, il vaut mieux utiliser un plugin. Si vous utilisez l’un des plugins listés ci-dessus, ou peut-être codez le vôtre, vous pourrez dupliquer autant d’articles, pages ou types de posts personnalisés que vous le souhaitez.

Si vous le faites de cette façon, vous gagnerez du temps et (plus important encore), vous éliminerez le risque de modifier accidentellement votre article original alors que vous auriez dû modifier l’article en double.