אם ניסיתם להשתמש בפונקציה 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
}
עד כאן לפוסט קצר זה ותודה למישקה על הידע המוצג בפוסט זה.