Làm sao để copy bài viết mà vẫn lên top năm 2024
Với các cách nhân bản (duplicate) Post mà tôi hướng dẫn, bạn sẽ không phải tốn nhiều thời gian để Copy/ Paste từng bài rồi điều chỉnh các Image, thông số SEO,...lại từ đầu. Show
4 Cách nhân bản (Duplicate) Post và Page đơn giản, nhanh chóng MỤC LỤC: Sẽ có nhiều trường hợp bạn muốn làm lại trang hiện tại với thiết kế hoàn toàn mới. Tuy nhiên, bạn lại muốn giữ lại toàn bộ bài viết nên bạn đã Copy/ Paste lại rồi lưu vào File Draft. Tuy nhiên, việc làm này sẽ không lưu lại các thông tin liên quan, SEO Optimization, Featured Images và Page Templates của bạn. Nếu bạn muốn Clone toàn bộ Blog hoặc Page thì sẽ mất rất nhiều thời gian cho công việc này. Trên thực tế, nếu bạn sử dụng Yoast SEO hãy cài đặt Yoast Duplicate Post để tối ưu nhất cho SEO. Nếu bạn không dùng Yoast SEO, hãy tham khảo ngay 4 cách nhân bản Post đơn giản mà ai cũng có thể thực hiện được qua bài viết của tôi nhé. Các thông tin cần biết trước khi bắt đầu:
Để tiết kiệm thời gian hơn với trang Web WordPress, tôi sẽ hướng dẫn bạn một số cách tuyệt vời. Các cách này vừa tiết kiệm thời gian, vừa sao chép đầy đủ nội dung, tính năng, thông số SEO,... Chỉ vài cú Click đơn giản, bạn sẽ Clone được toàn bộ trang Web hoặc tất cả bài viết của Website. Cách nhân bản Post/ Page với Plugin Duplicate PostPlugin Duplicate Post giúp bạn nhân bản bài viết hoặc trang nhanh chóng. Plugin Duplicate Post sẽ giúp bạn Clone bài viết hoặc trang Web WordPress dễ dàng và nhanh chóng nhất. Nó không chỉ hỗ trợ bạn nhân bản bài viết mà còn giúp bạn chèn thêm các thông số riêng. Plugin này sẽ cung cấp cho bạn một Suffix Pre-Defined để thêm vào trước hoặc sau Title của Post/ Page. Cách nhân bản Post hoặc Page với Plugin Duplicate Post như sau:
Nhân bản trang hoặc bài viết với Plugin Duplicate Page and PostPlugin Duplicate Page and Post giúp bạn tạo bản sao và giữ lại toàn bộ nội dung. Plugin Duplicate Page and Post là một Plugin nhân bản giúp bạn có thể dễ dàng Clone Post và Page cực nhanh chóng. Plugin này không những tạo bản sao mà nó còn giữ lại toàn bộ nội dung, Title, Styling của chúng. Cách nhân bản Post/ Page với Plugin Duplicate Page and Post gồm các bước:
Duplicate Post với Plugin Post Duplicator trên WordPressPlugin Post Duplicator giúp nhân bản và giữ lại các trường Taxonomies, Custom. Nếu như cả 2 Plugin trên vẫn chưa phù hợp với tất cả yêu cầu của bạn thì tôi xin gợi ý tiếp một Plugin khác. Đó là Post Duplicator. Plugin Duplicate Post của WordPress sẽ giúp bạn tạo nên bản sao chính xác cho bài viết được chọn. Cách nhân bản Post này cho phép bạn giúp giữ lại tất cả các trường như Custom và Taxonomies. Để nhân bản Post hoặc Page với Plugin Duplicate Post thì bạn thực hiện theo các bước sau:
Clone Page hoặc Post mà không cần Plugin Duplicate Post WordPressLưu ý: Với cách làm này, bạn phải Backup Website trước tiên rồi sau đó mới chỉnh sửa File gốc của WordPress. Ngoài việc sử dụng Plugin, nếu bạn nào biết Code có thể dùng cách này để Duplicate Page/ Post. Cách để nhân bản Post bằng Code Web được thực hiện như sau:
* 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'] = 'Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
|