בדיקה האם מוצר שייך לקטגוריה או תגית מוצר מסויימת

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

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

לעומת הפונקציה is_product_category(), במקרה של בדיקה אם מוצר שייך לקטגוריה מסויימת ווקומרס לא מספקת תנאים (conditional tags), ולכן עלינו להשתמש בתנאים הדיפולטיבים של וורדפרס:

has_term( $terms, 'product_cat', $post );
  • (string|integer|array)terms$ – משמש להעביר את שם הקטגוריה, מזהה הקטגוריה את ה ID. ניתן להעביר מספר ערכים יחד באמצעות מערך.
  • הפרמטר השני הוא שם הטקסונומיה, ובמקרה זה עבור קטגוריות מוצרים ולכן נשתמש ב product_cat. אם נרצה לבצע בדיקה עבור תגיות מוצרים נשתמש לחילופין ב product_tag.
  • (integer|object)post$ – ה ID של המוצר או אובייקט WP_Post. אם לא תספקו, יבוצע עבור המוצר הנוכחי בלולאה.

מספר דוגמאות קוד

כעת בואו נביט במספר דוגמאות קוד:

if( has_term( 4, 'product_cat' ) ) {
	// do something if current product in the loop is in product category with ID 4
}
if( has_term( array( 'sneakers', 'backpacks' ), 'product_cat', 50 ) {
	// do something if product with ID 50 is either in category "sneakers" or "backpacks"
} else {
	// do something else if it isn't
}
if( has_term( 5, 'product_tag', 971 ) ) {
	// do something if product with ID = 971 has tag with ID = 5
}

עד כאן לפוסט קצר זה ותודה למישקה.

רועי יוסף
רועי יוסף

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

השאירו תגובה

 

פעימות
Up!
לבלוג