Table of Content
Vous apprendrez dans cet article premièrement pourquoi vous pouvez être amené à dupliquer une page WordPress ou dupliquer un article WordPress.
Et ensuite vous verrez comment vous y prendre, en touchant au code source de WordPress ou en y procédant simplement qu’avec quelques clics.
Pourquoi cloner ou dupliquer une page WordPress ou un article WordPress ?
LA SUITE APRÈS CETTE PRÉSENTATION
Divi, numéro 1 des thèmes WordPress, il totalise près d’1.000.000 de téléchargements.
Il inclut les éléments suivants :
Pourquoi dupliquer une page WordPress ou dupliquer un article WordPress, certains se demanderont.
Il existe plusieurs cas où dupliquer une page ou un article WordPress serait bénéfique.
Lors de la conception d’un site WordPress, il est prudent de dupliquer les pages du thème WordPress importé avant de les personnaliser.
Ou encore, vous avez un blog où vous désirez mettre à jour des anciens articles en remplaçant les éléments obsolètes par de nouveaux contenus.
Dupliquer ces anciens articles avant de les mettre à jour, vous permet de garder l’image à la une de l’article, les métadonnées de l’article, les mots clés optimisés pour l’article. Vous ne serez plus obligés de reprendre manuellement toutes ces informations.
C’est aussi pareil pour une page de vente, ou une page produit, les dupliquer avant tout ajout ou mise à jour vous permet de garder leurs contenus et leurs paramètres.
Pour s’y prendre, vous avez le choix entre l’utilisation d’une extension ou toucher au code source de WordPress.
Dupliquer une page ou un article WordPress manuellement
Cette méthode est la plus complexe, mais elle est préférée par certains parce que, ne pas installer d’extension supplémentaire permet d’éviter :
- Un potentiel conflit avec d’autres extensions déjà installées sur le site
- Un potentiel surchargement du site et contribuer ainsi au chargement rapide du site
Cette méthode requiert de mettre ses mains dans du cambouis.
En effet, vous allez devoir entrer du code dans l’un des fichiers WordPress pour dupliquer une page ou un article WordPress.
LA SUITE APRÈS CETTE PUBLICITÉ
Activer le clonage ou le duplicata d’une page et d’un article au sein de WordPress
Avant de pouvoir cloner ou dupliquer une page WordPress ou un article WordPress sans l’utilisation d’une extension, il faut d’abord activer la fonction du clonage au sein de WordPress.
Pour s’y prendre, vous avez besoin d’un logiciel de transfert de fichier comme Filezilla pour télécharger le fichier WordPress à modifier, puis une fois la modification faite, uploader le fichier sur le serveur.
Vous aurez aussi besoin d’un éditeur de code pour l’ajouter du code d’activation au fichier.
PS : Il vous faut faire une sauvegarde de votre site bien avant de commencer cette manipulation, question de prudence.
Cherchez le fichier functions.php au sein de WordPress et téléchargez-le.
À l’aide de votre éditeur de texte, ajouter le code suivant à la fin du fichier :
/* * 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( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
Grâce à ce code, vous avez activé le duplicata des articles, pour activer celui des pages, reprenez le même code, mais remplacer la dernière ligne par :
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
Enregistrez votre fichier à l’aide d’un CRTL+S et uploader le fichier sur votre serveur.
Maintenant la fonction du clonage étant activée, vous pouvez maintenant dupliquer une page WordPress ou un article WordPress.
Dupliquer une page ou un article WordPress en utilisant une extension
Si vous craignez de foutre le bordel en touchant au fichier functions.php, ou carrément si vous ne désirez pas vous prendre la tête avec du code, vous pouvez utiliser une extension pour dupliquer vos pages et articles WordPress.
L’avantage d’utiliser une extension pour le duplicata est qu’elle vous simplifie la vie et vous épargne d’avoir à toucher vous-même le code source de votre site.
Elles sont nombreuses, mais dans cet article nous ne vous proposerons que quelques-unes.
Celles qui sont proposées ci-dessous sont régulièrement mises à jour.
Yoast Duplicate Post
Yoast Duplicate Post est à ce jour installé sur près de 5 millions de sites WordPress.
Elle vous permet de dupliquer tout type d’articles, de les copier dans de nouveaux brouillons pour les modifier ultérieurement.
Elle offre également une option de préfixe ou de suffixe, pour différencier votre article original et le clone.
Pour utiliser Yoast Duplicate Post, voici comment s’y prendre :
- Sur la page d’administration WordPress présentant les articles ou les pages de votre site, vous pouvez cliquer sur le lien « Cloner » situé sous le titre de l’article ou de la page, cela créera immédiatement une copie et retournera à la liste.
- Vous pouvez aussi sélectionner un ou plusieurs éléments, puis choisir « Cloner » dans la liste déroulante « Actions groupées » pour tous les cloner en une seule fois.
Cette extension propose encore d’autres fonctionnalités que vous pouvez découvrir sur la page de présentation de l’extension.
Duplicate Page and Post
Duplicate Page and Post est aussi très appréciée. Ces utilisateurs se comptent en centaines de milliers.
Voici quelques-unes de ses fonctionnalités :
- Créer un clone d’une page particulière.
- Créer un clone d’un article particulier.
- Créer un clone d’un article personnalisé particulier
- Option pour sélectionner l’éditeur
- Option pour ajouter un suffixe.
- Option pour ajouter un texte personnalisé pour le bouton du lien dupliqué.
- Option pour sélectionner le statut des articles dupliqués.
- Option pour rediriger après avoir cliqué sur Duplicate.
Duplicate Page
Duplicate Page est installée sur plus de deux millions de sites WordPress. Elle propose des fonctionnalités supplémentaires que certaines autres extensions de clonage ne proposent pas.
Elle permet de dupliquer les articles, les pages et les articles personnalisés. De plus, vous pouvez enregistrer les copies résultantes comme brouillon, en attente, publique ou privée.
Post Duplicator
Le concepteur de Post Duplicator l’a créé au prime abord pour ces propres besoins, mais vu l’utilité de son outil, il a décidé de le laisser à la disposition de la communauté WordPress.
A l’heure actuelle elle est installée et active sur plus de 200000 sites WordPress.
Elle permet de reproduire une copie exacte d’un article sélectionné. Elle prend en compte les articles personnalisés, ainsi que les taxonomies et les champs personnalisés.
Une fois qu’elle est installée et active sur votre site, il suffit de passer la souris sur un article dans la zone d’édition de WordPress et de sélectionner « Dupliquer » pour dupliquer un article WordPress.
Autres ressources WordPress disponibles sur le blog
Top 20 thèmes WooCommerce à télécharger
15 magnifiques thèmes WordPress multi-vendeurs
Top 20 thèmes elementor pour réussir un projet web
Top 19 thèmes wordpress animaux
Top 15 Thèmes WordPress Portfolio pour Présenter Ses Créations et Projets
Plus de 40 thèmes responsives (wordpress, woocommerce, shopify, prestashop, drupal)