Comment dupliquer facilement une page/une publication WordPress
Publié: 2021-11-05
La duplication de votre contenu existant de pages ou de publications peut être utile dans de nombreuses situations. Vous pouvez utiliser la publication/page principale comme modèle et terminer rapidement votre tâche. Pouvez-vous imaginer combien de temps cela vous coûterait si vous deviez recréer le contenu de la même page/publication ?
Eh bien, je ne peux pas imaginer ça. Heureusement, il existe des moyens de dupliquer le contenu dans la page/poste WordPress. Dans cet article, je vais vous montrer comment dupliquer instantanément une page/une publication WordPress.
Commençons alors.
- Pourquoi dupliquer une page/un article WordPress ?
- Contenu dupliqué dans WordPress avec plugin
- WordPress Dupliquer Page/Poster Sans Plugin
- Derniers mots
Pourquoi dupliquer une page/un article WordPress ?
Lorsque vous apportez de nouvelles modifications à votre page ou à votre message, vous devrez peut-être cloner rapidement la page/le message.
Par exemple, vous avez une page de vente avec beaucoup de sections ; maintenant, vous devez recréer la même page de vente pour un produit différent, que ferez-vous ? Recréer toute la page ?
Bien sûr que non. Vous pourrez obtenir exactement la même page en la dupliquant. Vous pourrez commencer à travailler dessus tout de suite et gagner du temps. Vous pouvez dupliquer une page/poste WordPress de deux manières : 1. Avec un plugin, 2. Sans plugin.
Contenu dupliqué dans WordPress avec plugin
Il existe quelques plugins tels que - Duplicate Page, Post Duplicator, Duplicate page and Post, Page et Any Custom Post; qui vous aident à dupliquer instantanément la page / la publication WordPress. Mais le plus populaire est le Yoast Duplicate Post.
Dans un premier temps, installez et activez le plugin Yoast Duplicate Post à partir du répertoire des plugins WordPress.
Depuis le tableau de bord, accédez à Message -> Tous les messages. (Pour dupliquer une page, allez dans Pages -> Toutes les pages)
Passez maintenant votre curseur sur n'importe quel message et vous verrez deux nouvelles options - "Cloner et nouveau brouillon".
Cliquez maintenant sur le bouton cloner pour dupliquer le message.
Cependant, si vous souhaitez créer un clone et l'ouvrir immédiatement dans l'éditeur de publication, cliquez sur le bouton "Nouveau brouillon".
WordPress Dupliquer Page/Poster Sans Plugin
Si vous ne souhaitez pas augmenter le nombre de plugins installés, vous pouvez suivre cette méthode. C'est très simple, tout ce que vous avez à faire est de copier quelques codes dans le fichier function.php et vous pourrez ensuite dupliquer la page/les publications WordPress très facilement.
Remarque : Avant de modifier l'un des fichiers WordPress, il est recommandé de sauvegarder d'abord votre site Web.
Dans un premier temps, accédez à Apparence -> Éditeur de thème et cliquez sur "Fonctions de thème". Copiez maintenant le code suivant et collez-le ici.
/* * 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 );
N'oubliez pas de mettre à jour le fichier.
Le code ci-dessus fonctionnera pour la duplication des publications. Si vous souhaitez dupliquer des pages, remplacez simplement la dernière ligne par le code suivant :
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
Derniers mots
J'espère que vous avez maintenant le moyen facile de dupliquer une page/poste WordPress. Peu importe que vous utilisiez un plugin ou non ; vous obtiendrez le même résultat dans les deux sens. Si vous avez des questions ou des suggestions, faites-le moi savoir via la boîte de commentaires ci-dessous.