Retry

کپی کردن یک برگه یا پست در وردپرس یکی از کارهای بسیار مرسوم است. به عنوان مثال وقتی چند محصول با ویژگی های مشترک وجود داشته باشد، به جای وقت گذاشتن برای ایجاد هر محصول می توانید یک محصول را ساخته و سپس آن را اصطلاحا کلون کنید. در نوشته ها هم مواردی چون جداول داده و یا وجود تغییرات جزئی در چند نسخه یکسان، کاربر را از تولید چندین نوشته و طراحی جدول بی‌نیاز می‌کند. با ساختن یک قالب مشخص، می‌توان تنها با ویرایش متغیرها در محتوا، چندین نسخه واحد برای استفاده داشت. این مقاله به شما انواع راه‌های کپی کردن برگه و نوشته در وردپرس را به دو روش کدنویسی و به کمک افزونه آموزش می‌دهد.

 

آموزش کپی کردن برگه و نوشته وردپرس با استفاده از افزونه

به لطف ویژگی های وردپرس که یکی از مهمترین آن‌ها افزونه وردپرس است، شما می توانید به راحتی با کمک افزونه های مربوط، برگه ها و پست ها را به هر میزان که نیاز دارید تکثیر کنید. در ادامه بهترین افزونه های مورد نیاز برای کپی کردن برگه و نوشته در وردپرس را معرفی خواهیم کرد و کارکرد هرکدام را به طور کامل توضیح خواهیم داد.

  1. افزونه Duplicate Page and Post
  2. افزونه Yoast Duplicate Post

افزونه Duplicate Page and Post

پلاگین Post Duplicator یکی از بهترین ابزارهای کپی پست و برگه در وردپرس است. به کمک این افزونه می توانید جزییات کامل مثل دسته‌بندی‌ و برچسب را نیز به یک رونوشت دقیق تبدیل کنید. ابزار فوق را از مخزن وردرس دریافت و پس از فعال‌ سازی، از لیست نوشته ها یا برگه ها، هر محتوایی که مدنظرتان است را با کلیک بر روی گزینه‌ Duplicate تکثیر کنید. همچنین جهت انجام تنظیمات بیشتر به ابزارها در وردپرس رفته و از Post Duplicator گزینه های مورد نیاز را پیکربندی کنید.

افزونه کپی برگه وردپرس برای کپی کردن برگه و نوشته در وردپرس

 

افزونه Yoast Duplicate Post

یکی دیگر از ابزارهای کپی در وردپرس، پلاگین وردپرس Yoast Duplicate Post است. با نصب و راه اندازی آن قادر هستید به سادگی هرچه تمام تر از محتوای خود نسخه مشابه تهیه کنید. وقتی از نصب داپلیکت پست مطمئن شدید، به بخش نوشته ها یا برگه ها رفته و هر عنوانی که مدنظر دارید را Clone کرده و یا بصورت New Draft بکار بگیرید. گزینه New Draft از نوشته یا برگه یک کپی تهیه و آن را در ویرایشگر باز می کند.

در تنظیمات این افزونه می‌توانید تعیین کنید که در حین پروسه کپی گرفتن از محتوا، زمان مطلب، پیوست‌های نوشته اصلی، زمینه‌های سفارشی و دسته بندی ها نیز لحاظ شود.

افزونه برای کپی کردن برگه و نوشته وردپرس

آموزش کپی کردن برگه و نوشته وردپرس توسط کدنویسی

برای کپی کردن برگه و نوشته دروردپرس بصورت دستی، می توانید به کمک کدنویسی و براحتی آن را انجام دهید. برای این منظور کافی است قطعه کد زیر را در فایل functions.php واقع در پوشه themes سایت وردپرسی تان اضافه کنید. همچنین فانکشن قالب از طریق پیشخوان وردپرس قابل ویرایش است که باید به مسیر نمایش و سپس ویرایشگر پوسته بروید.

برای فعال شدن قابلیت تکثیر نوشته و برگه باید کد جداگانه وارد کنید، بعد از انجام این کار یک گزینه به جدول نوشته ها یا برگه ها اضافه می شود که با کلیک بر روی آن، براحتی می توان از هر محتوایی کپی تهیه کرد.

کد فانکشن برای تکثیر نوشته

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

پس از اتمام و ذخیره کردن تغییرات در فایل فانکشن، گزینه‌ ای به نام Duplicate در لیست پست ها و برگه ها اضافه می شود.

 

جمع‌بندی

اغلب مبتدیان وردپرس ، نوشته ها و برگه ها را با هم اشتباه می گیرند. به طور پیش فرض ، وردپرس دارای دو نوع محتوا است: پست ها یا نوشته ها (posts) و برگه ها(pages). در ضمن قبلا راجع به تفاوت نوشته و برگه در وردپرس صحبت کرده بودیم، اگر مایل باشید می‌توانید مقاله مرتبط به آن را مطالعه فرمایید.

معمولا برای جلوگیری از مصرف منابع و یا عدم تمایل در استفاده از افزونه، با اضافه کردن کد فانکشن این قابلیت به وردپرس شما اضافه خواهد شد. همانطور که توضیح دادیم دلایل مختلفی برای تکثیر محتوا وجود دارد که وقت گذاشتن برای تکرار انجام یک کار، براحتی می توان مانند کپی در ویندوز، از پست و برگه نسخه مشابه تهیه کرد. در صورتیکه از افزونه برای کپی کردن استفاده می کنید، در صورتیکه گزینه های دسته بندی و سایر ویژگی ها را انتخاب نکنید، پس از تکثیر موضوع مورد نظر، می توانید آن محتوا را در بخش ویرایش مجدد پیکربندی کنید.

 

سوالات متداول

کپی کردن برگه و نوشته وردپرس به چه روش‌هایی انجام می‌گیرد؟

تکثیر برگه و نوشته در وردپرس به دو روش کدنویسی و با کمک افزونه انجام می‌شود.

برای کپی برگه یا کپی نوشته در وردپرس از چه افزونه‌هایی استفاده می‌شود؟

برای ایجاد پست و صفحه داپلیکیت از دو افزونه Duplicate Page and Post و پلاگین Yoast Duplicate Post می‌توان استفاده کرد.

 

دسته بندی: وردپرس

دیدگاه‌ها

Comments
امتیاز فراموش نشه

نشانی ایمیل شما منتشر نخواهد شد.