יצירת שורטקוד לקישור דינמי באלמנטור

יצירת shortcode שיחזיר קישור דינמי לכפתור

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

מה זה שורטקוד?

shortcode זה קוד שאנו מכינים מראש בקבצי התבנית או התוספים, ומציגים אתו ע"י הכנסת שמו בין סוגריים מרובעים []
לדוגמה, [shortcode_name].
בסופו של דבר זה פונקצייה שיוצרת משהו (מה שנכתוב בקוד) ואפשר לקרוא לה ע"י הכנסת השם בתוכן האתר.
באלמנטור אפשר להכניס שורטקוד בתוכן דינמי של אלמננט (כפתור, כותרת, טקסט…)

קדימה לעבודה

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

הקוד: (ב functions.php)

// הפונקציה שאותה השורטקוד ידפיס
function sortcode_for_dynamic_category_button_url() { 

	// הכנסת כל הקטגוריות של הפוסט למשתנה category
	global $post;
	$category = get_the_terms( $post->ID, 'category' ); 
	
	$link =  get_home_url(); // לינק ברירת מחדל אם לא יהיה קטגוריה שמשוויכת לפוסט
	
	// בדיקה אם בטוח יש קטגוריה 
	if( ! empty( $category ) && ! is_wp_error( $category ) ){
		// כתובת ה URL של הקטגוריה הראשונה
	    $link = get_term_link( $category[0]->term_id , "category" );
	}
	
	//מחזירים  את המשתנה $link
	return $link;
}
// מכניסים את הפונקציה שכתבנו לתוך שורטקוד
add_shortcode('category_url', 'sortcode_for_dynamic_category_button_url');

הסבר כללי על הקוד:

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

לאחר מכן סיימנו את הפונקציה והכנסנו אותה לתוך shortcode ע"י הפונקציה שוורדפרס בנו בשבילנו add_shortcode
הפונקצייה הזאת מקבלת שני ארגומנטים: שם השורטקוד ושם הפונציה שתופעל היכן שהשורטקוד מוכנס.
בשורטקוד שבנינו כאן השם זה כמובן [category_url].
והוא יחזיר לנו: https://elementor-guide.co.il/category/advanced/

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

לפוסט הזה יש 3 תגובות

  1. חפציה

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

  2. מירי

    תודה רבה
    הסבר מעולה והכי מובן שיכול להיות

כתיבת תגובה