scroll
תוסף לשכפול עמודים ופוסטים בוורדפרס

תוסף לשכפול עמודים ופוסטים בוורדפרס

התוסף elikoDuplicate, נוצר בכדי לתקן עוול שוורדפרס עושה לנו המון שנים ולא מוסיף לנו שכפול לעמודים ולפוסטים😜
שכפול עמודים בוורדפרס

התוכן נכתב ע"י eliko.web.studio בשביל לתת לכם תוסף קל ופשוט ושלא תצטרכו לחפש תוספים ששוקלים המון או שדורשים כסף עבור פונקציות פשוטות

The content is written by eliko.web.studio to give you an easy and simple plugin so you don't have to look for plugins that weigh a lot or require money for simple functions

הקדמה

קטע מטורף, מדוע המפתחים של וורדפרס לא יוצרים את האופצייה הממש ממש פשוטה והיא, שכפול עמודים ופוסטים.. קטע מטורף ולא כל כך מובן.. אז התעצבנתי ופיתחתי תוסף עבור זה..

elikoDuplicate התוסף לשכפול פוסטים

טוב, יש קודים לזה אה ואפילו כתבתי מאמר שכפול עמודים ופוסטים בוורדפרס והבאתי קוד בפנים בשביל ליצור ואם אתם רוצים פונקציונאליות משוכללת יותר אז יש גם תוספים טובים בשביל להצליח לשכפל עמודים או פוסטים בוורדפרס.. אבל חלקם התחילו לגבות כסף על כמה פונקציות פשוטות.. כדוגמת להפעיל את התוסף בסוגי פוסטים שונים או לדאוג שהעמוד המשוכפל יהיה בסטטוס פורסם ועוד.. אז הרמתי את הכפפה ויצרתי את התוסף elikoDuplicate לשכפול עמודים ופוסטים ושליטה על איזה סוגי פוסטים הוא יופעל ואיזה שלא,, ועוד כמה ריגושים..

אז תהנו, ההורדה ממש כאן

קוד ללא תוסף

כמו שבמאמר הוספתי קוד, אז כאן אני אביא לכם אותו גם כן שאם תכניסו אותו בסוף הקובץ functions.php שבעורך התבנית (מקווה שאתם יודעים איך להיכנס לשם, תיזהרו אם לא), תקבלו יכולת לשכפל עמודים ופוסטים באתר. אבל… לא בדיוק משוכלל, רק אפשרות לשכפל. איפה? בכל מקום. באיזה סטטוס? טיוטה כמובן בלבד.. בקיצור הבנתם, לא העיפרון הכי מחודד, אבל כותב.

אז תהנו.. ותגידו תודה לתותחים מ savvy שהם הביאו את הקוד המהולל.

/*
 * פונקציה שיוצרת כפילות של פוסט כטיוטה ולאחר מכן מפנה למסך עריכת הפוסט
 */
function sv_duplicate_post_as_draft() {
	global $wpdb;
	if ( ! ( isset( $_GET['post'] ) || isset( $_POST['post'] ) || ( isset( $_REQUEST['action'] ) && 'sv_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_sv_duplicate_post_as_draft', 'sv_duplicate_post_as_draft' );

/*
 * Add the duplicate link to action list for post_row_actions
 */
function sv_duplicate_post_link( $actions, $post ) {
	if (current_user_can('edit_posts')) {
		$actions['duplicate'] = '<a href="' . wp_nonce_url('admin.php?action=sv_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="שכפול פוסט" rel="permalink">שכפול</a>';
	}
	return $actions;
}

add_filter( 'post_row_actions', 'sv_duplicate_post_link', 10, 2 );

add_filter('page_row_actions', 'sv_duplicate_post_link', 10, 2);

זהו תהנו… ותפרגנו בתגובה או בלייק…

0 0 votes
דירוג מאמר
Subscribe
Notify of
guest
0 הערות
Inline Feedbacks
View all comments
מדריכים ומאמרים קשורים
eliko.web.studio
מניעת העתקת תוכן באתר היא חיונית להגנה על זכויות יוצרים ושיפור אבטחת המידע. במדריך זה, נסביר כיצד ניתן לחסום העתקת טקסט ותמונות באתר באמצעות קוד PHP ו-JavaScript. נלמד כיצד למנוע קליק ימני, חסימת Inspect Element, הגבלת קיצורי מקלדת ועוד – הכל תוך שמירה על חוויית משתמש טובה.
eliko.web.studio
ניתן לשפר את חוויית המשתמש בעמוד התשלום באמצעות התאמת שדות: הסרה, שינוי והוספה. במדריך זה נלמד כיצד ליישם שינויים אלו בקלות בעזרת קוד PHP.
eliko.web.studio
רוצים למנוע ספאם באתר מבלי לפגוע בעיצוב? גלו כיצד להסתיר את סמל Google reCAPTCHA עם קוד CSS פשוט. הפתרון שישאיר את האתר שלכם מוגן ונקי תוך שמירה על עיצוב מושלם.
eliko.web.studio
ב-WooCommerce, כפתור “מעבר לסל הקניות” שמופיע לאחר הוספת מוצר לעגלה בדפי ארכיון יכול לעיתים לפגוע בחוויית המשתמש ובעיצוב האתר
businessbloomer
ב-WooCommerce, כפתור “מעבר לסל הקניות” שמופיע לאחר הוספת מוצר לעגלה בדפי ארכיון יכול לעיתים לפגוע בחוויית המשתמש ובעיצוב האתר
eliko.web.studio
פיתחתי את התוסף elikoShowID, תוסף פשוט, קטן אך עוצמתי שברגע שתתקינו אותו, מיד תוכלו לראות ברשימת הפוסטים/עמודים עמודה חדשה שמתחתיה יופיעו כל מספרי הid של הפוסטים.

תודה שאישרת את הצעת המחיר!

לא צויין כתובת מייל

סך תשלום ראשון (מקדמה) 30% מסכום העסקה הינו:

בפרוייקטים של עיצוב גרפי או/ו פרוייקטים שלא עולים מעל לסכום של 2000₪, התשלום לא יתחלק לפעימות אלא התשלום יושלם בפעימה ראשונה או יתחלק לשתי פעימות על פי הסיכום בטלפון או בהודעות

העברה בנקאית

בנק – ONE ZERO (18)
סניף – ראשי (001)
חשבון – 202003116
ע"ש – אליהו כהן

תשלום באפליקציות

bit/PayBox
במספר טלפון 0503528688