آموزش کپی کردن نوشته و برگه در وردپرس
مقالات حوزه وردپرساگر در وردپرس قصد دارید تا از یک نوشته ، برگه یا محصول کپی تهیه کرده و کار خود را سرعت بخشید باید چگونه عمل کرد ؟ معرفی روش های سریع تهیه رونوشت از انواع محتوا در وردپرس !

کپی کردن نوشته و برگه در وردپرس ممکن است به هر دلیل انجام شود . متاسفانه به شکل پیش فرض در بخش نوشته ها یا برگه ها امکان کپی کردن و اصطلاحا Clone کردن یک نوشته یا برگه وجود ندارد و برای اینکه یک نسخه همسان از یک نوشته یا برگه تهیه شود باید دست به دامان افزونه ها شده و یا کدهایی را داخل قالب اضافه کرد . مسلما روش استفاده از افزونه برای دوستانی که به روش های برنامه نویسی آشنایی ندارند ساده تر و سریع تر است .
کپی کردن نوشته و برگه در وردپرس چه زمانی لازم است ؟
تصور کنید شما با افزونه صفحه ساز در حال ساخت یک صفحه هستید که جزئیات بسیاری دارد و حداقل 3 الی 4 ساعت برای تنظیم المان های داخل آن زمان صرف کردید . اکنون اگر صفحه دیگری با همین شرایط نیاز داشته باشید باید تمامی کارهایی که داخل برگه انجام شده را مجدد در برگه جدید انجام دهید تا یک نسخه دیگر از همان صفحه داخل سایت داشته باشید .
یا برای مثال اگر یک صفحه جامع دارید و به یک نسخه کاهش یافته از یک صفحه نیاز دارید ، مثلا در صفحه اصلی المان هایی همچون اسلایدر ، آخرین محصولات ، محصولات پیشنهادی و محصولات پرفروش را دارید و اکنون قصد دارید در یک صفحه جدید فقط بخش اسلایدر و بخش آخرین محصولات را داشته باشید . در این شرایط میتوانید از صفحه اصلی یک نسخه کپی تهیه نموده و بخش هایی غیر از اسلایدر و آخرین محصولات را حذف کنید و صفحه جدید خود را داشته باشید . به همین ترتیب در مواردی مشابه ممکن است شما نیاز به تهیه یک نسخه از نوشته ، برگه یا محصولات خود داشته باشید .
یک نکته مهم !
مفهوم پست در وردپرس کمی متفاوت است ! Post یک مفهوم جامع به کار رفته در وردپرس است و لازم است بدانید که شاخصه هایی مشخص برای تشخیص یک نوع خاص بعنوان پست وجود دارد . داخل وردپرس قسمت نوشته ها ، قسمت برگه ها ، رسانه و همپنین فهرست ها یک نوع Post هستند . اگر از افزونه فروشگاه ساز ووکامرس استفاده می کنید لازم است بدانید که محصولات نیز یک نوع Post هستند . یا برای مثال اگر از افزونه نمونه کار استفاده می کنید بخش Portfolio نیز یک نوع Post است .
روش اول استفاده از افزونه Yoast Duplicate Post
افزونه Yoast Duplicate Post یکی از اصلی ترین و شناخته شده ترین پلاگین های وردپرس جهت تهیه نسخه های رونوشت از نوشته یا برگه است . شما میتوانید افزونه Yoast Duplicate Post را از این لینک دریافت کنید . این افزونه داخل مخزن وردپرس به ثبت رسیده و هیچگونه نگرانی بابت استفاده از آن وجود ندارد . این افزونه در حال حاضر 4.000.000 نصب فعال دارد . این افزونه به شما امکان کپی کردن پست ها در هر نوعی را خواهد داد . اما روش کار آن چگونه است ؟ پس از نصب این افزونه چندین گزینه برای شما فعال خواهد شد . بعد از اینکه افزونه را نصب و فعال نمودید ، از بخش افزونه های نصب شده نام افزونه را پیدا کرده ( نام آن در وردپرس فارسی ” تکثیر کننده پست ” است ) و روی تنظیمات کلیک کنید .
- بخش اول تنظیمات
در بخش تنطیمات با چند تب مختلف روبرو هست که اولین گزینه عنوان ” چه چیزهایی کپی شود ” دارد . در این بخش میتوانید تعیین کنید که چه فاکتور هایی از نوع Post مدنظر کپی شوند . برای مثال امکان کپی کردن : عنوان ، تاریخ ، وضعیت ، نامک ، محتوا ، تصویر شاخص ، ساختار نوشته ، نویسنده ، حتی دیدگاه ها نیز وجود دارد . همچنین در این قسمت میتوانید تعیین کنید که چه فیلد های اختصاصی که مدنظر خودتان است به هیچ عنوان کپی نشوند .
- در قسمت دسترسی ها
در این بخش میتوانید تعیین کنید که گزینه های تکثیر و کپی برای چه نقش هایی نمایش داده شود ! برای مدیر کل ، نویسنده ، مدیر فروشگاه ، مدیر سئو و … پس میتوان امکان تکثیر را تنها برای نقش های کاربری خاصی درنظر گرفت . همچنین در بخش دسترسی ها ، در قسمت ” برای این نوع نوشته ها فعال کن ” میتوانید تعیین کنید که خاصیت تکثیر برای چه نوع نوشته هایی قابل اجرا باشد .
- بخش نمایش
در این قسمت میتوانید گزینه هایی که این افزونه جهت کار به شما نمایش خواهد داد را کنترل کنید . برای مثال تعیین کنید که گزینه ” پیش نویس تازه ” در منوهای ابزار نمایش داده شود یا نه ! تنظیمات این قسمت درکل به نمایش یا عدم نمایش گزینه های افزونه ارتباط دارد . برای مثال تنظیمات در داخل صفحه ویرایش مطلب ، در کدام سمت صفحه نشان داده شود و …
- در یک پیش نویس تازه کپی کن
اگر وارد بخش ویراش نوشته شوید ، در باکس انتشار مطلب که در وردپرس فارسی در سمت چپ صفحه قرار دارد ، دو گزینه اضافه شده است که یکی از آنها به این شکل است ” در یک پیش نویس تازه کپی کن که معادل انگلیسی آن ” Copy To A New Draft ” است . در صورتی که روی این گزینه کلیک شود ، نوشته جاری بسته شده و یک نوشته جدید دقیقا با شرایطی که در بخش تنظیمات افزونه تعیین کردهاید ، در حالت پیش نویس ساخته خواهد شد و اکنون می توانید روی آن کار کنید . آن را منتشر کرده یا به عنوان پیش نویس تغییر یافته ذخیره کنید .
- بازنویسی و انتشار مجدد
اگر وارد بخش ویرایش نوشته شوید ، مجددا داخل باکش انتشار ، و در زیر گزینهی ” در یک پیش نویس تازه کپی کن ” ، یک گزینه دیگر تحت عنوان ” بازنویسی و انتشار مجدد ” وجود دارد که معادل انگلیسی آن ” Rewrite & Republish ” است . اگر بروی این گزینه کلیک شود ، همانند حالت قبلی وارد یک پنجره جدید خواهید شد و گویا در حال ویرایش مطلب هستید اما در این حالت می توانید بازنویسی نوشته خود را در این نسخه تکراری از نوشته اصلی شروع کنید . اگر روی “بازنشر” کلیک کنید ، تغییرات شما در نوشته اصلی ادغام شده و به آنجا هدایت می شوید . به نوعی یک نسخه رونوشت از نوشته اصلی خود دارید که پس از انجام تغییرات میتوانید آنها را به نسخه اصلی منتقل نمائید و در همان نسخه اصلی منتشر کنید و یا آن را فعلا در حالت پیش نویس قرار دهید . ( در حالت قبلی تغییرات کلا دریک نسخه جدید قابل انتشار بود ، اما دراین نسخه گویا یک نسخه کمکی جهت اعمال تغییرات بروی نوشته اصلی ایجاد می شود و سپس نسخه ساخته شده حذف می شود ) در این شرایط حتی میتوانید تغییرات نسخه جدید را با نسخه اصلی مقایسه کنید .
در صورتی که در لیست نوشته ها یا برگه ها قصد دارید به شکل سریع از نوشته خود تکثیر کرده و یا پیش نویس جدید بسازید ، زمانی که موس روی نوشته ها قرار گیرد گزینه هایی ظاهر خواهد شد که در زیر توضیح دادهایم .
- تکثیر کردن ( Clone )
درصورتی که در لیست نوشته ها روی گزینه تکثیر کردن کلیک شود ، یک نوشته جدید با حالت پیش نویس در کنار نوشته اصلی تولید خواهد شد که میتوانید پس از تولید ، خودتان وارد قسمت ویرایش آن شده و پس از انجام تغییرات ، آن را منتشر کنید . همانند گزینه ” در یک پیش نویس تازه کپی کن ” عمل می کند .
- پیش نویس تازه ( New Draft )
در صورتی که روی این گزینه کلیک شود ، یک نوشته جدید با حالت پیش نویس تولید شده و شما مستقیما جهت ویرایش به داخل نوشته منتقل خواهید شد که میتوانید پس از انجام تغییرات ، آن را پیش نویس کرده و یا به عنوان نسخه جدید منتشر کنید .
- دوبل کردن
اگر سایت شما دارای بخش فروشگاه و افزونه فروشگاه ساز ووکامرس است ، درصورتی که در حال مشاهده لیست محصولات باشید ، با قرار گرفتن موس روی هر محصول ، یک گزینه با عنوان ” دوبل کردن ” وجود خواهد داشت ، که این گزینه عملکردی دقیقا مانند گزینه پیش نویس تازه در بخش نوشته ها دارد و پس از کلیک روی آن ، به یک صفحه جدید ویرایش محصول با همان مشخصات منتقل خواهید شد که پس از انجام تغییرات میتوانید آن را پیش نویس کرده یا منتشر کنید .
روش دوم ، کدهای برنامه نویسی
برای اینکه خاصیت تکثیر را توسط کدهای برنامه نویسی به پروژه خود اضافه کنید ( تنها در قالبی که تغییرات در آن اعمال شود انجام خواهد شد ) می بایست در داخل فایل functions.php کدهایی که در ادامه معرفی می شود را قرار دهید . البته توجه داشته باشید که انجام تغییرات در فایل functions.php بسیار خطرناک است و باید این کار توسط یک برنامه نویس ماهر که تسلط و شناخت کافی به ساختار قالب های وردپرس دارد انجام شود . دسترسی به فایل functions.php از چند طریق ممکن است که ساده ترین راه دسترسی به آن از داشبورد وردپرس ، بخش نمایش و ویرایشگر پوسته است .
این کدها به زبان php هستند و باید حتما داخل بلوک php نوشته شده و در محل مناسبی از فایل functions.php قرار گیرد . البته این کد برای اضافه کردن گزینه ” Duplicate this item ” به بخش نوشته ها است که میتوانید با تغییر آخرین خط کد ، آنرا برای قسمت برگه ها نیز فعال کنید . در این صورت باید دوبار این کد را داخل فایل functions.php قرار دهید . کد به این شکل است :
/*
* 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 );
اگر قصد دارید تا این بخش را برای برگه های سایت نیز فعال کنید باید همین کدها را یکبار دیگر تکرار نموده و خط انتهایی آن را در بخش ” post_row_actions ” به شکل ” page_row_actions ” تغییر دهید تا در بخش لیست برگه ها نیز گزینه ” Duplicate this item ” اضافه شود .
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
درحالت کلی روش اول یعنی روش استفاده از افزونه ساده تر است و شما میتوانید بعد از نصب افزونه و انجام تکثیر های لازم ، افزونه را غیرفعال نموده و یا پاک کنید و لزومی ندارد که پس از اتمام کار ، افزونه در حالت فعال یا نصب شده باقی بماند . افزونه های دیگری نیز برای انجام عمل تکثیر نوشته ، برگه یا محصول و … وجود دارد که افزونه Yoast Duplicate Post با چندمیلیون نصب فعال ، در صدر قرار داشته و تمام امکانات آن رایگان است .

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