Jak zduplikować stronę lub post w WordPress

Opublikowany: 2021-08-26

Szukasz sposobu na zduplikowanie strony WordPress, posta lub innego rodzaju treści?

Możliwość łatwego powielania treści WordPress może być przydatna we wszystkich rodzajach sytuacji, od zbiorczego tworzenia podobnych treści po aktualizowanie starszych treści, poprawianie projektu i nie tylko.

Jednak w wielu przypadkach chodzi o coś więcej niż tylko kopiowanie i wklejanie tekstu między różnymi stronami. Oprócz treści, które utworzyłeś, możesz również chcieć zachować jego projekt i ustawienia posta, takie jak kategorie, tagi, autor, pola niestandardowe i inne metadane.

W tym poście przedstawimy obszerny przewodnik po tym, jak całkowicie zduplikować stronę WordPress, post i inne elementy, korzystając w 100% z bezpłatnych rozwiązań.

Pod koniec będziesz mógł powielać dowolną treść w swojej witrynie za pomocą jednego kliknięcia – zacznijmy.

Spis treści

  • Jak zduplikować post lub stronę w WordPressie: trzy metody
  • Jak zduplikować stronę WordPress za pomocą wtyczki?
  • Yoast zduplikowany post
  • Zduplikowany post
  • WooCommerce
  • Jak zduplikować stronę WordPress za pomocą edytora
  • Edytor bloku (Gutenberg)
  • Elementor
  • Jak ręcznie zduplikować stronę WordPress za pomocą kodu?
Przyspiesz proces tworzenia stron internetowych jeszcze bardziej dzięki kompletnym zestawom stron internetowych

Jak zduplikować post lub stronę w WordPressie: trzy metody

Istnieją trzy główne metody, których możesz użyć do zduplikowania strony WordPress, posta lub innego niestandardowego typu postu:

  • Wtyczka – najłatwiejszym sposobem na zduplikowanie posta lub strony jest skorzystanie z jednej z wielu dedykowanych wtyczek (z których większość jest bezpłatna).
  • Edytor – w zależności od tego, jak dokładnie chcesz powielić treść, możesz użyć samego edytora, jeśli zależy Ci tylko na powielaniu treści i projektu.
  • Kod ręczny — dla majsterkowiczów wystarczy dodać niestandardowy kod do pliku functions.php motywu potomnego.

Omówimy wszystkie trzy metody – przejdźmy przez nie…

Jak zduplikować stronę WordPress za pomocą wtyczki?

Istnieje wiele wtyczek, które ułatwiają duplikowanie postów, stron lub innych treści w Twojej witrynie.

Jeśli masz sklep WooCommerce, WooCommerce zawiera własną wbudowaną funkcję do duplikowania produktów – więcej na ten temat poniżej. A jeśli tego nie zrobisz, na WordPress.org znajdziesz wiele darmowych wtyczek, w tym:

  • Yoast zduplikowany post
  • Zduplikowany post
  • Zduplikowana strona
  • Powielacz postów
  • Powiel stronę i post

Oprócz WooCommerce pokażemy Ci, jak to działa z dwoma darmowymi wtyczkami z powyższej listy:

  • Yoast Duplicate Post, ponieważ jest bardzo łatwy w użyciu i zawiera unikalną funkcję „Przepisz i ponownie opublikuj”, która doskonale nadaje się do aktualizowania istniejącej treści.
  • Powiel post, ponieważ zapewnia bardziej szczegółową kontrolę w niektórych obszarach.

Obie wtyczki są bezpłatne, a także przetestowaliśmy obie, aby upewnić się, że działają zarówno z projektami Elementora, jak i treściami zbudowanymi za pomocą natywnego edytora WordPress. Wyobrażamy sobie, że wszystkie inne wtyczki z góry będą również działać z Elementorem, chociaż nie testowaliśmy ich specjalnie.

Yoast zduplikowany post

Najpierw spójrzmy na Yoast Duplicate Post. Ta wtyczka jest świetna, jeśli potrzebujesz szybkiego i łatwego sposobu na duplikowanie postów, stron lub dowolnego innego niestandardowego typu postu.

Oprócz możliwości klonowania treści, zawiera również unikalną funkcję Przepisz i ponownie publikuj, która pomaga aktualizować istniejące treści. Zasadniczo ta funkcja pozwala zduplikować zawartość w celu wprowadzenia zmian, a następnie „scalić” zduplikowaną wersję z powrotem z oryginalną wersją, gdy chcesz wprowadzić zmiany w życie.

Aby rozpocząć, zainstaluj i aktywuj bezpłatną wtyczkę Yoast Duplicate Post z WordPress.org.

Teraz masz kilka różnych sposobów na powielanie treści.

Najpierw możesz przejść do głównej listy postów lub stron . Jeśli najedziesz kursorem na element na liście, zobaczysz trzy opcje:

  • Klonuj – zduplikuj treść i zachowaj kartę przeglądarki na liście postów/stron.
  • New Draft – zduplikuj treść i otwórz edytor dla zduplikowanych treści, abyś mógł od razu rozpocząć pracę.
  • Przepisz i ponownie publikuj – jest to przydatna funkcja do aktualizowania starych treści, jak omówiliśmy powyżej. Kluczową różnicą jest to, że po zakończeniu pozwoli Ci scalić treść z powrotem z oryginalnym postem.
duplikat-strony-1-opcje-na-listy-stron

Najprostszym sposobem jest po prostu kliknięcie Clone . Następnie na liście pojawi się nowa wersja robocza zduplikowanej treści. Wtyczka oznaczy ją powiadomieniem „Szkic dostosowywania”, aby poinformować Cię, że jest to zduplikowana wersja:

Po drugie, możesz także zduplikować zawartość z edytora WordPress. Te opcje znajdziesz w sekcji Stan i widoczność na pasku bocznym Post/Strona :

Na koniec możesz również zbiorczo duplikować posty lub strony, korzystając z opcji wtyczki w menu rozwijanym działań zbiorczych na liście Posty lub Strony :

  1. Użyj pola wyboru, aby zaznaczyć wszystkie posty lub strony, które chcesz zduplikować.
  2. Wybierz metodę powielania z listy rozwijanej – Klonuj lub Przepisz i ponownie opublikuj .
  3. Kliknij Zastosuj .

Jeśli chcesz dostosować zachowanie wtyczki, przejdź do Ustawienia → Zduplikuj post . Ten obszar pozwala:

  • Wybierz treść do zduplikowania.
  • Dodaj niestandardowy prefiks lub sufiks do tytułu zduplikowanej treści.
  • Wybierz sposób zamawiania zduplikowanych treści w menu.
  • Wybierz typy postów, które mają zostać zduplikowane.
  • Wybierz, które role użytkownika mają możliwość powielania treści.
  • Dostosuj miejsce wyświetlania zduplikowanych linków/przycisków do postów.
duplikat-strony-5-yoast-duplicate-post-settings-area

Zduplikowany post

Duplicate Post pełni tę samą podstawową funkcję, co Yoast Duplicate Post, ponieważ ułatwia szybkie zduplikowanie postu lub strony.

Kilka zalet tej wtyczki w porównaniu z Yoast Duplicate Post to:

  1. Umożliwia wielokrotne zduplikowanie postu/strony jednym kliknięciem. Na przykład możesz powiedzieć, aby utworzył cztery duplikaty.
  2. Daje ci trochę większą kontrolę nad tym, jakie treści powielasz między postami.
  3. Zawiera funkcję skanowania witryny w poszukiwaniu duplikatów treści, co jest przydatne do szybkiego znajdowania duplikatów.
  4. Umożliwia kopiowanie treści między różnymi witrynami sieci WordPress z wieloma witrynami, w tym tymi w subdomenie (chociaż ta funkcja wymaga wtyczki premium 19,98 USD).
  5. Daje opcję konwersji postów na strony i odwrotnie (wymaga również wersji premium).

Jeśli nie potrzebujesz tych funkcji, zalecamy pozostanie przy Yoast Duplicate Post, ponieważ jest bardziej popularny i wykonuje zadanie. Ale jeśli chcesz tych funkcji, jest to kolejna solidna opcja do rozważenia.

Aby rozpocząć, zainstaluj i aktywuj darmową wtyczkę Duplicate Post z WordPress.org. Jak tylko go aktywujesz, zacznie działać.

Przejdź do listy Posty/Strony i najedź kursorem na treść, którą chcesz zduplikować. Zobaczysz nową opcję Kopiuj . Jeśli najedziesz na to kursorem, rozwiniesz dodatkowe ustawienia, aby wybrać liczbę duplikatów i jakich ustawień użyć (więcej o nich za sekundę):

duplikat-strona-6-duplikat-post-wtyczka

Podobnie jak w przypadku Yoast Duplicate Post, możesz również użyć pól wyboru i listy rozwijanej akcji zbiorczych, aby zbiorczo skopiować wiele postów.

Aby skonfigurować ustawienia wtyczki, możesz przejść do nowej zakładki Kopiuj i usuwaj posty w swoim panelu WordPress. Tutaj możesz skonfigurować wszystkie ustawienia, w tym:

  • Jakie treści powielać.
  • Kto może powielać treść.
  • Dla jakich niestandardowych typów wpisów włączyć duplikację.
  • Itp.

Jedną fajną rzeczą jest to, że możesz utworzyć wiele profili ustawień i wybrać konfigurację, której chcesz użyć podczas duplikowania treści.

Jeśli przewiniesz na dół obszaru ustawień, możesz również znaleźć funkcję skanowania w poszukiwaniu duplikatów treści w Twojej witrynie:

Ponownie, jeśli chcesz mieć prosty sposób na duplikowanie treści, zalecamy trzymanie się wtyczki Yoast Duplicate Post. Ale jeśli któraś z tych funkcji przykuła twoją uwagę, Duplicate Post również działa dobrze.

WooCommerce

Jeśli używasz WooCommerce do tworzenia sklepu e-commerce, WooCommerce zawiera własną wbudowaną funkcję duplikowania produktów – nie ma potrzeby instalowania osobnej wtyczki.

Aby zduplikować produkt, przejdź do obszaru Produkty na pulpicie nawigacyjnym. Następnie najedź kursorem na produkt, który chcesz zduplikować, i kliknij Duplikuj :

Możesz również zduplikować produkt z poziomu edytora produktu, klikając opcję Kopiuj do nowej wersji roboczej w ustawieniach publikowania :

Uwaga – te opcje pojawiają się tylko na produktach. Jeśli chcesz zduplikować posty i strony, musisz zainstalować jedną z powyższych wtyczek.

Jak zduplikować stronę WordPress za pomocą edytora

Jeśli zajmujesz się głównie powielaniem treści/projektu postu lub strony, możesz być w porządku bez wtyczki dzięki wbudowanym funkcjom edytora.

W tej sekcji pokażemy, jak szybko powielić projekt, który utworzyłeś za pomocą natywnego edytora bloków (Gutenberg) lub Elementora.

Należy zauważyć, że obie te metody tylko powielają treść i projekt — konieczne będzie ręczne odtworzenie wszelkich ważnych metadanych, takich jak tytuł, kategorie, tagi, pola niestandardowe itp.

Edytor bloku (Gutenberg)

Aby szybko zduplikować treść z edytora bloków, zacznij od otwarcia edytora postu lub strony, którą chcesz zduplikować.

Kliknij ikonę z trzema kropkami w prawym górnym rogu, aby rozwinąć menu. Następnie wybierz opcję Kopiuj całą zawartość :

duplikat-strony-11-duplikat-tresci-gutenberg

Teraz utwórz nowy post lub stronę. Następnie kliknij w edytor i wklej treść. Możesz albo:

  • Użyj skrótu klawiaturowego, takiego jak Ctrl + V lub Cmd + V .
  • Kliknij prawym przyciskiem myszy i wybierz wklej.

Powinieneś zobaczyć dokładną kopię oryginalnej treści w edytorze. Musisz jednak ręcznie dodać tytuł, kategorie, tagi itp.

Elementor

Uwaga – możesz duplikować strony lub posty zbudowane za pomocą Elementora za pomocą wtyczek, o których wspomnieliśmy powyżej. Ale jeśli martwisz się głównie o powielanie projektu postu / strony Elementora (a nie innych metadanych, takich jak autor i kategorie), możesz to zrobić za pomocą systemu szablonów Elementora.

Mamy przewodnik, jak zduplikować stronę Elementora, ale oto podstawowa idea.

Najpierw możesz zapisać swój projekt jako szablon z interfejsu edytora Elementor:

duplikat-strona-12-elementor-szablon

Następnie możesz utworzyć nowy post lub stronę i wstawić szablon z biblioteki szablonów Elementor.

Jeśli chcesz zduplikować więcej niż jedną stronę, możesz również użyć funkcji zestawów stron internetowych Elementora do eksportowania/importowania kompletnych projektów stron internetowych.

Zduplikuj swój kompletny projekt strony internetowej, importując własny zestaw stron internetowych

Funkcja importu/eksportu Elementora umożliwia importowanie własnych kreacji i tworzenie nowej witryny w kilka sekund. Po prostu stwórz plan, który można wykorzystać w wielu projektach, lub ponownie wykorzystaj swoją ulubioną kreację internetową. Następnie wyeksportuj całą witrynę i zastosuj ją do innych projektów.

Możesz użyć własnej kreacji lub wybrać z naszej biblioteki designerskich zestawów stron internetowych. Po prostu zastosuj go do swojej witryny, dodaj treść i dostosuj ją do siebie.

Jak ręcznie zduplikować stronę WordPress za pomocą kodu?

Jeśli wolisz podejście „zrób to sam” (DIY), możesz również utworzyć własną funkcję duplikatu strony, używając niestandardowego kodu. Ta metoda nie zapewnia żadnych korzyści w stosunku do trasy wtyczki, poza wyeliminowaniem konieczności instalowania innej wtyczki w witrynie.

Jeśli jednak unikanie innej wtyczki jest dla Ciebie ważne, to podejście jest w porządku i będzie działać ze zwykłymi treściami edytora i Elementorem.

Aby użyć tego kodu, musisz dodać go do pliku functions.php Twojego motywu lub wtyczki do zarządzania kodem, takiej jak Code Snippets. Jeśli dodasz go do pliku functions.php , upewnij się, że używasz motywu potomnego.

 <?php /* * 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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 ); <code readonly="true">&lt;?php /* * 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[&#39;post&#39;]) || isset( $_POST[&#39;post&#39;]) || ( isset($_REQUEST[&#39;action&#39;]) &amp;&amp; &#39;rd_duplicate_post_as_draft&#39; == $_REQUEST[&#39;action&#39;] ) ) ) { wp_die(&#39;No post to duplicate has been supplied!&#39;); } /* * Nonce verification */ if ( !isset( $_GET[&#39;duplicate_nonce&#39;] ) || !wp_verify_nonce( $_GET[&#39;duplicate_nonce&#39;], basename( __FILE__ ) ) ) return; /* * get the original post id */ $post_id = (isset($_GET[&#39;post&#39;]) ? absint( $_GET[&#39;post&#39;] ) : absint( $_POST[&#39;post&#39;] ) ); /* * and all the original post data then */ $post = get_post( $post_id ); /* * if you don&#39;t want current user to be the new post author, * then change next couple of lines to this: $new_post_author = $post-&gt;post_author; */ $current_user = wp_get_current_user(); $new_post_author = $current_user-&gt;ID; /* * if post data exists, create the post duplicate */ if (isset( $post ) &amp;&amp; $post != null) { /* * new post data array */ $args = array( &#39;comment_status&#39; =&gt; $post-&gt;comment_status, &#39;ping_status&#39; =&gt; $post-&gt;ping_status, &#39;post_author&#39; =&gt; $new_post_author, &#39;post_content&#39; =&gt; $post-&gt;post_content, &#39;post_excerpt&#39; =&gt; $post-&gt;post_excerpt, &#39;post_name&#39; =&gt; $post-&gt;post_name, &#39;post_parent&#39; =&gt; $post-&gt;post_parent, &#39;post_password&#39; =&gt; $post-&gt;post_password, &#39;post_status&#39; =&gt; &#39;draft&#39;, &#39;post_title&#39; =&gt; $post-&gt;post_title, &#39;post_type&#39; =&gt; $post-&gt;post_type, &#39;to_ping&#39; =&gt; $post-&gt;to_ping, &#39;menu_order&#39; =&gt; $post-&gt;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-&gt;post_type); // returns array of taxonomy names for post type, ex array(&quot;category&quot;, &quot;post_tag&quot;); foreach ($taxonomies as $taxonomy) { $post_terms = wp_get_object_terms($post_id, $taxonomy, array(&#39;fields&#39; =&gt; &#39;slugs&#39;)); wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false); } /* * duplicate all post meta just in two SQL queries */ $post_meta_infos = $wpdb-&gt;get_results(&quot;SELECT meta_key, meta_value FROM $wpdb-&gt;postmeta WHERE post_id=$post_id&quot;); if (count($post_meta_infos)!=0) { $sql_query = &quot;INSERT INTO $wpdb-&gt;postmeta (post_id, meta_key, meta_value) &quot;; foreach ($post_meta_infos as $meta_info) { $meta_key = $meta_info-&gt;meta_key; if( $meta_key == &#39;_wp_old_slug&#39; ) continue; $meta_value = addslashes($meta_info-&gt;meta_value); $sql_query_sel[]= &quot;SELECT $new_post_id, &#39;$meta_key&#39;, &#39;$meta_value&#39;&quot;; } $sql_query.= implode(&quot; UNION ALL &quot;, $sql_query_sel); $wpdb-&gt;query($sql_query); } /* * finally, redirect to the edit post screen for the new draft */ wp_redirect( admin_url( &#39;post.php?action=edit&amp;post=&#39; . $new_post_id ) ); exit; } else { wp_die(&#39;Post creation failed, could not find original post: &#39; . $post_id); } } add_action( &#39;admin_action_rd_duplicate_post_as_draft&#39;, &#39;rd_duplicate_post_as_draft&#39; ); /* * Add the duplicate link to action list for post_row_actions */ function rd_duplicate_post_link( $actions, $post ) { if (current_user_can(&#39;edit_posts&#39;)) { $actions[&#39;duplicate&#39;] = &#39;ID, basename(__FILE__), &#39;duplicate_nonce&#39; ) . &#39;&quot; title=&quot;Duplicate this item&quot; rel=&quot;permalink&quot;&gt;Duplicate&#39;; } return $actions; } add_filter( &#39;post_row_actions&#39;, &#39;rd_duplicate_post_link&#39;, 10, 2 );</code> <?php /* * 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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
			

Domyślnie fragment kodu umożliwia powielanie zarówno postów, jak i stron. Jeśli chcesz ją włączyć tylko dla jednego lub drugiego, możesz usunąć filtr page_row_actions lub post_row_actions u dołu fragmentu kodu.

Usprawnij proces tworzenia stron internetowych, duplikując strony i posty

Możliwość zduplikowania strony WordPress, postu lub innego typu postu jest bardzo przydatna podczas pracy w witrynie WordPress.

W tym poście udostępniliśmy trzy różne metody, których możesz użyć do powielania treści.

W przypadku większości osób najłatwiejszym sposobem pełnego sklonowania posta lub strony jest skorzystanie z bezpłatnej wtyczki Yoast Duplicate Post. Zaczyna działać od razu i współpracuje z edytorem bloków (Gutenberg), Elementorem i edytorem Classic TinyMCE. Działa również ze wszystkimi typami postów, od stron po posty i dowolnymi niestandardowymi typami postów, których możesz używać.

Jeśli masz sklep WooCommerce, możesz również użyć wbudowanej funkcji WooCommerce do duplikowania produktów. Możesz też dodać niestandardowy kod do swojej witryny, jeśli nie chcesz instalować innej wtyczki.

Na koniec, jeśli potrzebujesz tylko zduplikować treść/projekt postu, możesz użyć systemu szablonów Elementora lub użyć opcji edytora bloków, aby skopiować całą treść.

Zanim wyjedziemy, jedno szybkie przypomnienie. W większości sytuacji nie chcesz publikować zduplikowanych treści, ponieważ może to negatywnie wpłynąć na Twoje SEO. Jeśli więc duplikujesz stronę bez zmiany jej zawartości (może tylko w celu zmiany adresu URL), warto rozważyć przekierowanie oryginalnej strony po zakończeniu.

Czy nadal masz pytania dotyczące duplikowania strony lub wpisu WordPress? Daj nam znać w sekcji komentarzy.