ارزدیجیتال
حراجی دامنه های ویژهمشاهده
تبلیغات
تبلیغات تبلیغات
تبلیغات ژاکت, مرجع خرید قالب و افزونه وردپرسی اورجینال

کپی کردن کامل یک مطلب در وردپرس

مقالات,آموزش,ترفند , وردپرس

گاهی اوقات ، هنگام ویرایش یک مطلب متوجه می شوید که کلیه برچسب ها ، زمینه های دلخواه و … آن با مطلبی که قبلا ارسال کرده اید ، مطابقت دارد . اگر سایت شما دارای زمینه های دلخواه زیادی است بدون شک وارد کردن همه آن ها کار خسته کننده و وقت گیر می باشد .

 

کپی کردن کامل یک مطلب در وردپرس

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

 

کپی کردن کامل یک مطلب در وردپرس

برای این کار کد زیر را در فایل functions.php قالب قرار دهید .

/*
 * Function creates post duplicate as a draft and redirects then to the edit post 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!');
	}
 
	/*
	 * get the original post id
	 */
	$post_id = (isset($_GET['post']) ? $_GET['post'] : $_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
		 */
		$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;
				$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="admin.php?action=rd_duplicate_post_as_draft&amp;post=' . $post->ID . '" title="Duplicate this item" rel="permalink">کپی کردن</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);

و یا به صورت کلی برای هر پست دلخواهی :

add_filter('{post type name}_row_actions', 'rd_duplicate_post_link', 10, 2);

در ضمن می توانید چند فیلتر آخر را با هم فراخوانی کنید .

این مقاله چقدر براتون مفید بود؟

از ۱ تا ۵ امتیاز بدید.

میانگین رتبه 0 / 5. تعداد رای : 0

تا حالا کسی رای نداده! اولین نفر شما باشید.

دانلود

هاست ارزان، لایت اسپید، سرور مجازی منطبق با اسکریپت های 20script کلیک کنید >

خرید ارز
مطلب مفیدی بود ؟
نویسنده : تیم محتوای 20اسکریپت 0 مقالات,آموزش,ترفند , وردپرس
لینک کوتاه مطلب : https://www.20script.ir/?p=19246
کلمات کلیدی پست :
مطالب مرتبط
14,182قالب وبلاگ دو ستونه عاشقانه آرزوهای من برای بلاگفا تاریخ : 2015/10/8
13,112قالب شرکتی و حرفه ای Porto برای وردپرس تاریخ : 2014/12/23
11,296اسکریپت محاسبه ارزش و سود بیت کوین Bitcoin What If تاریخ : 2018/03/29
5,472افزودن کاراکترهای خاص به پست ها در وردپرس تاریخ : 2019/03/4
5,828چرا گوگل سایت رو ایندکس نمی‌کنه؟ دلایل و روش‌های حل مشکل تاریخ : 2019/09/13
21,216اسکریپت چت تصویری LiveSmart Video Chat تاریخ : 2020/09/8
8,423جداول قیمت گذاری واکنش گرا CSS3 تاریخ : 2013/12/19
20,188اسکریپت آپلود سنتر عکس فارسی Image Wheel تاریخ : 2014/05/10
10,620اسکریپت تشخیص زیبای افراد توسط عکس تاریخ : 2016/06/22
9,357افزونه وردپرس ابزارهای کاربردی GetSiteControl Widgets تاریخ : 2016/12/26
7,152نمایش لیست نوشته های زماندار در وردپرس تاریخ : 2019/04/15
6,176دانلود قالب دایرکتوری و کاریابی Wyzi برای وردپرس تاریخ : 2019/11/21
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
بیست اسکریپت
اسکریپت
profile
sourceforge
profile webmaster
profile check
checker list
checker
checker
upload file