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

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

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

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

 

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

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

 

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

برای این کار کد زیر را در فایل 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
کلمات کلیدی پست :
مطالب مرتبط
732لایک دیدگاه وردپرس بدون افزونه تاریخ : 2022/10/11
13,012اسکریپت ایجاد فاکتور آنلاین Smart Invoice System تاریخ : 2018/06/5
7,119آموزش افزودن متن دلخواه آخر مطالب وردپرس تاریخ : 2016/03/13
10,368ستاره دار کردن مطالب در گوگل با افزونه Rich Snippets تاریخ : 2016/08/24
8,046مدیریت آسان افزونه ها در وردپرس تاریخ : 2016/04/21
10,938اسکریپت فروم نظر دهی تاریخ : 2014/01/12
7,376اسکریپت ایجاد شبکه اجتماعی Feral نسخه ۱.۲ تاریخ : 2015/01/7
8,240آموزش تغییر رنگ متن در وردپرس تاریخ : 2020/08/23
10,452افزونه وردپرس مدیریت نقش کاربری و سطح دسترسی Members تاریخ : 2017/04/19
25,050دانلود اسکریپت جامعه مجازی PHPFox نسخه 4.7.6 + افزودنی ها تاریخ : 2019/06/19
9,018اسکریپت وبمستر تولز Webmaster Tools نسخه 2.5 تاریخ : 2016/12/17
7,760قالب وردپرس مد و سرگرمی DeVoe تاریخ : 2016/08/26
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
indiegogo
sourceforge
profile webmaster
profile webmaster
profile
profile check
آرشیو
checker list
سئو سایت
تبلیغات