Cum să duplicați cu ușurință pagina/postarea WordPress

Publicat: 2021-11-05
conținut duplicat în wordpress

Duplicarea conținutului existent al paginilor sau al postărilor poate fi utilă în multe situații. Puteți utiliza postarea/pagina principală ca șablon și vă puteți finaliza rapid sarcina. Vă puteți gândi cât timp ar costa dacă ar trebui să recreați conținutul aceleiași pagini/postări?

Ei bine, nu îmi pot imagina asta. Din fericire, există modalități de a duplica conținut în pagina/postarea WordPress. În această postare, vă voi arăta cum să duplicați pagina/postarea WordPress instantaneu.

Să începem atunci.

Cuprins
  • De ce să duplicați pagina/postarea WordPress?
  • Duplicați conținut în WordPress cu plugin
  • Pagină/postare WordPress duplicată fără un plugin
  • Cuvinte finale

De ce să duplicați pagina/postarea WordPress?

Când aduceți câteva modificări noi în pagina sau postarea dvs., poate fi necesar să clonați rapid pagina/postarea.

De exemplu, aveți o pagină de vânzări cu o mulțime de secțiuni; acum trebuie să creați din nou aceeași pagină de vânzări pentru un produs diferit, ce veți face? Creați din nou întreaga pagină?

Desigur că nu. Veți putea obține exact aceeași pagină duplicând-o. Veți putea începe să lucrați la el imediat și veți putea economisi timp. Puteți duplica pagina/postarea WordPress în două moduri – 1. Cu un plugin, 2. Fără un plugin.

Duplicați conținut în WordPress cu plugin

Există câteva plugin-uri, cum ar fi: Duplicare pagină, Post Duplicator, Duplicare pagină și Postare, Pagina și Orice postare personalizată; care vă ajută să duplicați pagina/postarea WordPress instantaneu. Dar cel mai popular este Yoast Duplicate Post.

La început, instalați și activați pluginul Yoast Duplicate Post din directorul de pluginuri WordPress.

Din tabloul de bord, accesați Postare -> Toate postările. (Pentru duplicarea unei pagini, accesați Pagini -> Toate paginile)

Acum treceți cursorul pe orice postare și veți vedea două opțiuni noi – „Clonare și Schiță nouă”.

Acum faceți clic pe butonul de clonare pentru a duplica postarea.

Cu toate acestea, dacă doriți să creați o clonă și să o deschideți imediat în editorul de postări, faceți clic pe butonul „Nouă schiță”.

Pagină/postare WordPress duplicată fără un plugin

Dacă nu doriți o creștere a numărului unui plugin instalat, puteți urma această metodă. Este foarte simplu, tot ce trebuie să faci este să copiezi niște coduri în fișierul function.php și apoi vei putea duplica foarte ușor pagina/postările WordPress.

Notă: Înainte de a edita oricare dintre fișierele WordPress, se recomandă să faceți mai întâi o copie de rezervă a site-ului dvs.

La început, navigați la Aspect -> Editor de teme și faceți clic pe „Funcții teme”. Acum copiați următorul cod și inserați-l aici.

 /* * 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 );

Nu uitați să actualizați fișierul.

Codul de mai sus va funcționa pentru duplicarea postărilor. Dacă doriți să duplicați pagini, înlocuiți ultima linie cu următorul cod:

 add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);

Cuvinte finale

Sper că acum aveți modalitatea ușoară de a duplica pagina/postarea WordPress. Nu contează dacă folosești sau nu un plugin; veți obține același rezultat în ambele moduri. Dacă aveți întrebări sau sugestii, anunțați-mi prin caseta de comentarii de mai jos.