Come duplicare facilmente la pagina/il post di WordPress
Pubblicato: 2021-11-05
La duplicazione del contenuto esistente di pagine o post può essere utile in molte situazioni. Puoi utilizzare il post/la pagina principale come modello e completare rapidamente la tua attività. Riesci a pensare quanto tempo costerebbe se dovessi ricreare i contenuti della stessa pagina/post?
Beh, non posso immaginarlo. Per fortuna ci sono modi per duplicare i contenuti nella pagina/post di WordPress. In questo post, ti mostrerò come duplicare istantaneamente la pagina/il post di WordPress.
Cominciamo allora.
- Perché duplicare la pagina/il post di WordPress?
- Contenuti duplicati in WordPress con plug-in
- Pagina/Post duplicati WordPress senza plug-in
- Parole finali
Perché duplicare la pagina/il post di WordPress?
Quando apporti alcune nuove modifiche alla tua pagina o al tuo post, potresti dover clonare rapidamente la pagina/il post.
Ad esempio, hai una pagina di vendita con molte sezioni; ora devi creare nuovamente la stessa pagina di vendita per un prodotto diverso cosa farai? Creare di nuovo l'intera pagina?
Ovviamente no. Sarai in grado di ottenere la stessa identica pagina duplicandola. Potrai iniziare subito a lavorarci e risparmiare tempo. Puoi duplicare la pagina/il post di WordPress in due modi: 1. Con un plug-in, 2. Senza un plug-in.
Contenuti duplicati in WordPress con plug-in
Ci sono un paio di plugin come: pagina duplicata, post duplicatore, pagina duplicata e post, pagina e qualsiasi post personalizzato; che ti aiutano a duplicare istantaneamente la pagina/il post di WordPress. Ma il più popolare è Yoast Duplicate Post.
Inizialmente, installa e attiva il plug-in Yoast Duplicate Post dalla directory dei plug-in di WordPress.
Dalla dashboard, vai su Post -> Tutti i post. (Per duplicare una pagina vai su Pagine -> Tutte le pagine)
Ora posiziona il cursore su qualsiasi post e vedrai due nuove opzioni: "Clone e Nuova bozza".
Ora fai clic sul pulsante Clona per duplicare il post.
Tuttavia, se desideri creare un clone e aprirlo immediatamente nell'editor dei post, fai clic sul pulsante "Nuova bozza".
Pagina/Post duplicati WordPress senza plug-in
Se non vuoi aumentare il numero di un plugin installato, puoi seguire questo metodo. È molto semplice, tutto quello che devi fare è copiare alcuni codici nel file function.php e poi sarai in grado di duplicare molto facilmente la pagina/i post di WordPress.
Nota: prima di modificare qualsiasi file di WordPress, si consiglia di eseguire prima il backup del sito Web.
All'inizio, vai su Aspetto -> Editor temi e fai clic su "Funzioni tema". Ora copia il codice seguente e incollalo qui.
/* * 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 );
Non dimenticare di aggiornare il file.
Il codice sopra funzionerà per la duplicazione dei post. Se vuoi duplicare le pagine, sostituisci l'ultima riga con il seguente codice:
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
Parole finali
Spero che ora tu abbia il modo più semplice per duplicare la pagina/il post di WordPress. Non importa se usi un plugin o meno; otterrai lo stesso risultato in entrambi i modi. Se hai domande o suggerimenti, fammi sapere attraverso la casella dei commenti qui sotto.