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

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

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

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

 

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

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

 

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

برای این کار کد زیر را در فایل 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
کلمات کلیدی پست :
مطالب مرتبط
10,079قالب چندمنظوره Point برای وردپرس تاریخ : 2016/03/25
21,713ایجاد اسلایدر حرفه ای در وردپرس با Slider Revolution نسخه 4.6 تاریخ : 2014/09/9
10,716اسکریپت ایجاد مجله خبری آنلاین Osru تاریخ : 2018/05/1
65,192ابزار دعوت کاربر به کانال تلگرام تاریخ : 2016/05/26
9,251قالب وبلاگی Baskerville برای وردپرس تاریخ : 2016/03/25
11,113اسکریپت ساخت فایل های Robots.txt تاریخ : 2017/11/14
8,220دو روش برای حذف دسته جمعی پست های وردپرس تاریخ : 2019/02/16
9,884ساخت نوار تبلیغات شناور در صفحات وردپرس تاریخ : 2018/07/24
8,890دانلود فایل افزونه‌ها و قالب‌ها از داشبورد وردپرس تاریخ : 2018/01/9
9,134دکمه های اجتماعی با افکت CSS3 تاریخ : 2013/11/24
7,505ایجاد محدودیت طول عنوان نوشته ها در وردپرس Limit Post Titles تاریخ : 2018/01/17
35,518اسکریپت ثانیه شمار معکوس Flash تاریخ : 2013/10/22
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
بیست اسکریپت
اسکریپت
profile
sourceforge
profile webmaster
profile check
checker list
checker
checker
upload file