Jak zduplikować stronę lub post w WordPress

Opublikowany: 2023-02-12

Powielanie strony lub postu w WordPress może oznaczać coś więcej niż tylko kopiowanie i wklejanie treści. Możesz również zachować szablon strony, dane SEO i obrazy, aby zaoszczędzić czas podczas przeprojektowywania witryny lub aktualizowania treści.

Na szczęście powielanie stron i postów oraz wszystkich powiązanych z nimi danych w WordPress może być łatwe. Istnieją proste sposoby wykonania zadania, zarówno z wtyczką, jak i bez niej.

W tym artykule przyjrzymy się, jak bezpiecznie utworzyć duplikat strony WordPress lub opublikować ją, a także przedstawimy kilka wtyczek, które mogą pomóc. Wskakujmy od razu!

Spis treści
1. Z łatwością sklonuj stronę w WordPress za pomocą tych wtyczek
1.1. 1. Duplikat postu
1.2. 2. Zduplikuj stronę i post
1.3. 3. Duplikuj stronę
1.4. 4. Powielacz postów
2. Powielanie strony w WordPressie bez wtyczki
2.1. 1. Włącz klonowanie za pomocą kodu funkcji.php
2.2. 2. Ręcznie skopiuj i wklej kod, aby zduplikować stronę
3. Kontynuuj naukę z WP Engine

Z łatwością sklonuj stronę w WordPress za pomocą tych wtyczek

Klonowanie strony w WordPress jest bardzo proste, gdy używasz wtyczki WordPress, ponieważ wszystko odbywa się bezpośrednio na pulpicie nawigacyjnym. Wtyczki to także najbezpieczniejszy sposób na zduplikowanie posta lub strony, ponieważ nie będziesz bezpośrednio modyfikować kodu swojej witryny.

Jeśli szukasz odpowiedniego narzędzia, oto cztery wtyczki, które warto sprawdzić.

1. Duplikat postu

Jedną z podstawowych opcji klonowania stron WordPress i postów jest Duplicate Post. Ta popularna wtyczka jest łatwa w użyciu i klonuje wszystko, od treści strony lub postu po powiązane komentarze. Oferuje również opcję prefiksu lub sufiksu, aby odróżnić oryginalny post od klona.

Aby zduplikować post WordPress za pomocą tego narzędzia, wystarczy:

  1. Zainstaluj i aktywuj wtyczkę.
  2. Na pulpicie nawigacyjnym WordPress przejdź do Posty > Wszystkie podczas klonowania postów lub Strony > Wszystkie podczas klonowania stron.
  3. Przejdź do oryginalnej strony lub posta, który chcesz skopiować, i kliknij Klonuj , aby go zduplikować.
  4. Można wybrać wiele stron lub postów i sklonować je wszystkie naraz za pomocą akcji zbiorczych .

2. Zduplikuj stronę i post

Duplicate Page and Post nie ma wielu funkcji, ale nadrabia to szybkością. Ta lekka wtyczka do powielania postów jest jednym z najszybszych sposobów sklonowania posta lub strony w WordPress i nie obciąża witryny niepotrzebnymi dzwonkami i gwizdkami.

Aby sklonować stronę lub post za pomocą tej wtyczki, wykonaj następujące czynności:

  1. Zainstaluj i aktywuj wtyczkę.
  2. Przejdź do Posty > Wszystkie lub Strony > Wszystkie , w zależności od tego, co chcesz zduplikować.
  3. Najedź kursorem na stronę lub post, który chcesz sklonować.
  4. Kliknij opcję Duplikuj .

3. Duplikuj stronę

Duplicate Page oferuje kilka dodatkowych funkcji, których nie zapewniają niektóre inne wtyczki do klonowania. Ta wtyczka zduplikuje posty, strony i niestandardowe typy postów. Ponadto możesz zapisać powstałe kopie jako wersje robocze, oczekujące, publiczne lub prywatne.

Aby skorzystać z Duplikatu strony, wystarczy:

  1. Zainstaluj i aktywuj wtyczkę.
  2. Skonfiguruj jego ustawienia do swoich potrzeb.
  3. Przejdź do Strony > Wszystkie lub Posty > Wszystkie , aby znaleźć zawartość, którą chcesz powielić.
  4. Kliknij opcję Duplikuj to .

4. Powielacz postów

Inną prostą wtyczką do klonowania jest Post Duplicator. To rozwiązanie tworzy dokładny duplikat dowolnego postu lub strony, w tym niestandardowe typy postów, niestandardowe pola i niestandardowe taksonomie. Jest szybki i łatwy w użyciu i nie powinien zwiększać wagi Twojej witryny.

Aby powielić zawartość za pomocą tego narzędzia, wykonaj następujące kroki:

  1. Zainstaluj wtyczkę i aktywuj ją.
  2. Przejdź do opcji Posty > Wszystkie lub Strony > Wszystkie , aby znaleźć zawartość, którą chcesz sklonować.
  3. Najedź kursorem na post lub stronę.
  4. Kliknij opcję Duplikuj stronę lub Duplikuj post .

Powielanie strony w WordPressie bez wtyczki

Oczywiście nie musisz używać wtyczki, aby sklonować stronę lub post w WordPress. Można to również zrobić ręcznie, edytując plik funtions.php lub kopiując i wklejając odpowiedni kod. Przyjrzyjmy się, jak działają obie metody.

1. Włącz klonowanie za pomocą kodu funkcji.php

Jednym z ręcznych sposobów sklonowania strony lub posta WordPress jest edycja kodu w pliku functions.php . Chociaż może to być łatwe, musisz zachować ostrożność i najpierw wykonać kopię zapasową swojej witryny.

Aby umożliwić klonowanie postów, musisz uzyskać dostęp do pliku functions.php i otworzyć go do edycji, używając protokołu FTP (Secure File Transfer Protocol) lub innej preferowanej metody. Następnie musisz dodać następujący fragment kodu na końcu pliku:

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

Aby włączyć klonowanie również dla stron, użyj tego samego kodu, ale zamień ostatnią linię na:

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

Następnie możesz zapisać plik i przesłać go ponownie na swój serwer. Następnie możesz wrócić do pulpitu nawigacyjnego WordPress. Przycisk Duplikuj powinien teraz pojawiać się po najechaniu kursorem na stronę lub post, który chcesz sklonować.

2. Ręcznie skopiuj i wklej kod, aby zduplikować stronę

Jeśli nie chcesz edytować swojego pliku functions.php , możesz ręcznie skopiować i wkleić kod strony lub wpisu, który chcesz sklonować. Aby to zrobić, będziesz potrzebować:

  1. Otwórz stronę lub post, który chcesz powielić.
  2. Kliknij menu Więcej narzędzi i opcji .
  3. Wybierz Edytor kodu .
  4. Skopiuj kod strony lub posta.
  5. Kliknij Nowy post lub Nowa strona .
  6. W nowym poście lub na nowej stronie otwórz Edytor kodu .
  7. Wklej kod.
  8. Kliknij menu Więcej narzędzi i opcji .
  9. Wybierz Edytor wizualny .
  10. Nowa strona lub post powinien być teraz klonem starego.

Ten proces może zająć trochę czasu i trzeba to zrobić indywidualnie dla każdej strony lub posta, który chcesz skopiować. Dlatego zalecamy użycie wtyczki duplikatu strony WordPress, jeśli chcesz powielić dużo treści.

Kontynuuj naukę z WP Engine

Usprawnienie korzystania z WordPressa jest łatwe dzięki klonowaniu stron. Istnieje wiele innych sposobów na zaoszczędzenie czasu, na przykład migracja stron lub postów między witrynami WordPress, a nawet kopiowanie środowisk programistycznych.

W WP Engine oferujemy najlepsze zasoby dla programistów, którzy chcą stworzyć wspaniałe cyfrowe wrażenia dla swoich klientów. Sprawdź nasze plany, aby zacząć od razu!