Cách sao chép trang hoặc bài đăng trên WordPress

Tạo bản sao các bài đăng hoặc trang WordPress hiện có của bạn có thể hữu ích trong nhiều trường hợp. Bạn có thể sử dụng bản sao làm mẫu cho các bài đăng trong tương lai hoặc tham chiếu khi bạn thiết kế lại trang web của mình. Rất may, có nhiều cách để sao chép một trang hoặc bài đăng trong WordPress. Hướng dẫn này sẽ đưa ra các phương pháp khác nhau giúp bạn thực hiện điều này một cách dễ dàng.

Sao chép trang hoặc bài đăng với Plugin WordPress

Cách dễ nhất để tạo bản sao của trang hoặc bài đăng là sử dụng plugin. Sau khi kích hoạt, nhân bản các bài viết và trang chỉ bằng một cú nhấp chuột!

Hãy xem lựa chọn của chúng tôi về các plugin WordPress tốt nhất để sao chép các bài đăng và trang của bạn cũng như cách sử dụng chúng:

1. Duplicate Post Plugin

Plugin Duplicate Post là một trong những tùy chọn đi kèm cho mục đích này. Ngoài việc sao chép nội dung, bạn cũng có thể sao chép các nhận xét, slug, thứ tự menu,….

Ngoài ra, plugin cho phép bạn thêm tiền tố hoặc hậu tố tiêu đề ; vì vậy bạn sẽ biết cái nào là bản gốc và cái nào là bản sao.

Giả sử bạn đặt “Copy of” làm tiền tố tiêu đề. Nếu bạn sao chép một bài đăng có tiêu đề “What is WordPress,”, bản sao sẽ có tên là “Copy of What is WordPress.”

Để sao chép các bài đăng hoặc trang WordPress của bạn bằng Duplicate Post, hãy làm theo các bước đơn giản sau:

  • Cài đặt và kích hoạt plugin.
  • Đi tới bảng điều khiển WordPress của bạn, sau đó nhấp vào Pages -> All Pages (nếu bạn muốn sao chép một trang) hoặc Post -> All Post (nếu bạn định sao chép một bài đăng).
  • Di chuột qua trang hoặc bài đăng bạn muốn sao chép và bạn sẽ thấy hai tùy chọn mới ở đó – Clone and New Draft .

  • Nhấp vào Clone  để sao chép bài đăng đã chọn; hoặc chọn New Draft  để tạo phiên bản sao chép của bài đăng đã chọn và mở nó trong trình chỉnh sửa bài đăng.

2. Duplicate Page and Post

Duplicate Page and Post cho phép bạn sao chép các trang và bài đăng WordPress một cách nhanh chóng. Plugin có thể sao chép một trang hoặc bài đăng mà không thay đổi nội dung, tiêu đề hoặc kiểu của nó.

Sử dụng plugin này tương đối dễ dàng. Bạn chỉ cần làm theo các bước sau:

  • Sau khi cài đặt và kích hoạt plugin, hãy chuyển đến menu  All Pages hoặc All Posts; tùy thuộc vào những gì bạn muốn sao chép.
  • Di chuột qua bài đăng hoặc trang bạn muốn sao chép và nhấp vào Duplicate.

Cách sao chép trang hoặc bài đăng trên WordPress

  • Bài đăng hoặc trang được sao chép sẽ xuất hiện dưới dạng bản nháp mới có cùng tên với bản gốc. Mở bản sao để chỉnh sửa nội dung.

3. Post Duplicator

Cách sao chép trang hoặc bài đăng trên WordPress

Post Duplicator cho phép bạn tạo một bản sao chính xác của bài đăng đã chọn trong khi vẫn giữ lại các trường tùy chỉnh và phân loại tùy chỉnh.

Dưới đây là cách sao chép một trang hoặc bài đăng WordPress bằng cách sử dụng plugin Post Duplicator:

  • Cài đặt và kích hoạt plugin Post Duplicator.
  • Di chuột qua bài đăng hoặc trang bạn muốn sao chép và nhấp vào  Duplicate Post hoặc Duplicate Page.

Cách sao chép trang hoặc bài đăng trên WordPress

Có một số cài đặt mà bạn có thể tùy chỉnh cho các bài đăng bị trùng lặp. Đi tới Tools -> Post Duplicator và đặt trạng thái bài đăng (bản nháp, đã xuất bản hoặc giống như bản gốc), loại bài đăng và ngày đăng. Bạn cũng có thể điều chỉnh tiêu đề và slug của bản sao.

Sao chép trang hoặc bài đăng WordPress mà không cần plugin

Bên cạnh việc sử dụng plugin, bạn cũng có thể tinh chỉnh code để sao chép các trang và bài đăng WordPress. Mặc dù phương pháp này nghe có vẻ phiền phức; nhưng nó thực sự khá đơn giản. Chúng tôi thực sự khuyên bạn nên sao lưu trang web của mình trước khi chỉnh sửa bất kỳ tệp WordPress nào.

Đoạn mã bên dưới sẽ cho phép sao chép bài đăng trong WordPress:

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

Đoạn mã này chỉ hoạt động cho các bài đăng trùng lặp. Bạn có thể sao chép các trang WordPress bằng cách thay thế dòng cuối cùng bằng mã này:

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

Tất cả những gì bạn cần làm là dán mã vào tệp functions.php của mình. Để làm điều này, bạn có thể sử dụng Trình quản lý tệp, ứng dụng khách FTP hoặc trình chỉnh sửa tệp WordPress có sẵn.

Nếu bạn định sử dụng tùy chọn thứ ba, hãy điều hướng đến Appearance -> Theme Editor, và chọn Theme Functions.

Cách sao chép trang hoặc bài đăng trên WordPress

Bây giờ, nếu bạn đã nhúng thành công đoạn mã trên, bạn sẽ thấy nút Duplicate trong menu All Posts hoặc All Pages.

Cách sao chép trang hoặc bài đăng trên WordPress

Lời kết

Hi vọng với những thông tin được cung cấp trong bài viết, bạn có thể dễ dàng thực hiện việc sao chép bài viết hay trang một cách dễ dàng.

Đầu tiên, bạn có thể sao chép bằng plugin WordPress. Với mục đích này, có ba plugin khác nhau mà bạn có thể chọn: Duplicate Post Plugin, Duplicate Page and Post,Post Duplicator.

Thứ hai, bạn có thể làm điều đó mà không cần plugin. Tất cả những gì bạn cần làm là truy cập tệp functions.php trong WordPress; sau đó nhập mã mà chúng tôi đã cung cấp ở trên.

Bạn có bất kỳ câu hỏi, mẹo hoặc thủ thuật nào không? Hãy cho chúng tôi biết trong phần bình luận bên dưới nhé!

Cảm ơn các bạn đã đọc bài viết!

Xem thêm các bài viết WordPress khác:

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *