ایجاد یک نسخه کپی ( duplicate ) از پست ها یا صفحات موجود در وردپرس می تواند در بسیاری از شرایط مفید باشد. می توانید هنگام طراحی مجدد وب سایت، از کپی به عنوان الگو برای پست های بعدی یا مرجع استفاده کنید.
خوشبختانه چندین روش برای ساخت یک نسخه کپی از یک صفحه یا پست در وردپرس وجود دارد. در این آموزش، ما آن روشهای مختلف را توضیح داده ایم.
ساخت کپی از صفحه یا پست با استفاده از افزونه
ساده ترین راه برای ایجاد کپی از یک صفحه یا پست استفاده از یک افزونه است. پس از فعال سازی، ساخت کپی از پست ها و صفحات فقط به یک کلیک نیاز دارد!
در اینجا ما نگاهی به بهترین افزونه های وردپرس ما برای تکثیر پست ها و صفحات و همچنین نحوه استفاده از آنها انداخته ایم :
۱. Duplicate Post Plugin
افزونه Duplicate Post یکی از گزینه های ابتدایی برای این منظور است. جدا از کپی کردن مطالب، می توانید نظرات، ترتیب منو و موارد دیگر را نیز کپی کنید!
علاوه بر این، این افزونه به شما امکان می دهد به عنوان پیشوند یا یک پسوند اضافه کنید، بنابراین می دانید کدام یک اصلی است و کدام یک کپی است.
فرض کنید شما “Copy of” را به عنوان پیشوند عنوان تنظیم کرده اید. اگر پستی را با عنوان “What is WordPress” کپی کنید، نام کپی “Copy of What is WordPress” نامگذاری می شود.
برای کپی کردن پست ها یا صفحات WordPress خود با استفاده از Duplicate Post ، این مراحل ساده را دنبال کنید :
- افزونه ی Duplicate Post را نصب و فعال کنید.
- به داشبورد وردپرس خود بروید، سپس روی Pages -> All Pages (اگر می خواهید صفحه ای را شبیه سازی کنید) یا Post -> All Post (اگر می خواهید پستی را شبیه سازی کنید) کلیک کنید.
- روی صفحه یا پستی که می خواهید شبیه سازی کنید بروید و دو گزینه جدید در آنجا خواهید دید : Clone و New Draft
- برای کلون و تکثیر پست انتخاب شده، روی Clone کلیک کنید تا یک نسخه شبیه سازی شده از پست انتخاب شده ایجاد کرده و آن را در ویرایشگر پست باز کنید.
۲. Duplicate Page and Post
افزونه Duplicate Page and Post به شما امکان می دهد صفحات و پست های وردپرس را به سرعت شبیه سازی کنید. این افزونه می تواند بدون تغییر در محتوا، عنوان یا سبک آن، یک صفحه یا پست را کپی کند.
استفاده از این افزونه نسبتاً آسان است. شما فقط باید این مراحل را دنبال کنید :
- پس از نصب و فعال سازی افزونه، بسته به آنچه که می خواهید کپی کنید به منوی All Pages یا All Posts بروید.
- روی پست یا صفحه ای که می خواهید شبیه سازی شود بروید و روی Duplicate کلیک کنید.
- پست یا صفحه شبیه سازی شده به عنوان پیش نویس جدید با همان نام اصلی ظاهر می شود. نسخه را باز کنید تا محتوا ویرایش شود.
۳. Post Duplicator
Post Duplicator به شما امکان می دهد با حفظ قسمت های سفارشی و فیلد های سفارشی، یک نسخه دقیق از پست انتخاب شده ایجاد کنید.
در اینجا نحوه تکثیر و ساخت کپی از یک صفحه یا پست وردپرس با استفاده از پلاگین Post Duplicator را شرح دادیم :
- افزونه ی Post Duplicator را نصب و فعال کنید.
- روی پست یا صفحه مورد نظر برای کپی بروید و روی Duplicate Post یا Duplicate Page کلیک کنید.
تنظیماتی وجود دارد که می توانید آنها را برای پست های تکراری تنظیم کنید. به Tools -> Post Duplicator بروید و وضعیت پست (پیش نویس ، منتشر شده یا همان نسخه اصلی)، نوع پست و تاریخ ارسال را تنظیم کنید. همچنین می توانید عنوان نسخه دوم را تنظیم کنید.
ساخت کپی از صفحه یا پست بدون افزونه
علاوه بر استفاده از پلاگین ها، می توانید برخی کدها را نیز ویرایش کنید تا صفحات و پست های وردپرس را کپی کنید. گرچه به نظر می رسد این روش آزار دهنده و طولانی باشد، اما در واقع کاملاً ساده است.
ما اکیداً توصیه می کنیم قبل از ویرایش فایل های وردپرس از وب سایت خود پشتیبان تهیه کنید.
قطعه کد زیر تکثیر ویا duplication پست در وردپرس را فعال می کند :
/* * 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 );
این قطعه کد فقط برای تکثیر پست ها کار می کند. با جایگزینی خط آخر با این کد، می توانید صفحات وردپرس را کپی کنید :
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
تمام کاری که شما باید انجام دهید این است که کد را در فایل functions.php خود وارد کنید. برای انجام این کار، می توانید از فایل منیجر کنترل پنل خود (سی پنل یا دایرکت ادمین) یا ویرایشگر داخلی WordPress استفاده کنید.
اگر می خواهید از گزینه دوم استفاده کنید، به قسمتAppearance -> Theme Editor بروید و گزینهTheme Functions را انتخاب کنید.
اکنون، اگر کد بالا را با موفقیت جاسازی کرده باشید، باید یک دکمه Duplicate را در فهرست همه پست ها یا همه صفحات مشاهده کنید.
برای امتیاز به این نوشته کلیک کنید!
[کل: ۰ میانگین: ۰]