ارزدیجیتال
حراجی دامنه های ویژهمشاهده





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

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

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

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

 

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

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

 

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

برای این کار کد زیر را در فایل 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,592اسکریپت مدیریت جامع و پیشرفته هتل Hoteleon تاریخ : 2019/12/5
8,874قالب وردپرس استخدام بادیگارد Prodefence تاریخ : 2017/01/26
11,815قالب شرکتی سروای تی برای وردپرس تاریخ : 2014/10/25
25,070افزونه ساخت نقشه تصویر در وردپرس Image Map Pro نسخه 5.5.1 تاریخ : 2022/05/28
9,808آموزش ساخت لودینگ برای وردپرس تاریخ : 2019/11/21
15,750ساخت گرید در وردپرس با افزونه UberGrid تاریخ : 2019/01/30
10,376طراحی قالب HTML به صورت آنلاین با اسکریپت Architect نسخه 1.2 تاریخ : 2015/03/9
10,358افزونه All in One SEO Pack Pro v2.3.3 + سریال نامبر تاریخ : 2014/10/14
11,810اسکریپت عکس برداری به صورت آنلاین تاریخ : 2014/02/23
20,800دانلود 5 پترن ساده ولی حرفه ای تاریخ : 2013/12/30
5,964قالب دایرکتوری CityBook برای وردپرس تاریخ : 2019/09/24
6,980وردپرس 5.3.1 برای بهبود امنیت منتشر شد! تاریخ : 2019/12/14
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
بیست اسکریپت
اسکریپت
profile
sourceforge
profile webmaster
profile check
checker list
checker
checker
upload file