- סטטוס
- פתוח
סקירה כללית של התקלה
הפונקציה המובנית של WordPress has_category אינה עובדת עבור פוסטים מתורגמים.
להלן דוגמה לכך:
- יש לנו קטגוריה עם מזהה הכתובת באנגלית “test” והתרגום שלה לצרפתית “test-fr”.
- קטגוריה זו משויכת לפוסטים.
- כאשר אתה קורא ל־has_category(”test”) בתוך לולאה בקובץ single.php של ערכת העיצוב שלך, היא מחזירה true עבור שפת ברירת המחדל אך false עבור התרגום.
פתרון עוקף
הגדר פילטר חדש בקובץ functions.php של ערכת העיצוב שלך:
function wp_has_category ($category) {
$category = get_term_by('name', $category, 'category');
return has_category($category);
}
add_filter('wp_has_category', 'wp_has_category', 10, 1);החלף את הפונקציה has_category בפילטר חדש זה:
apply_filters( 'wp_has_category', 'test' )
פילטר זה לוקח את הקטגוריה המתורגמת על סמך השם של הקטגוריה המקורית ובודק אם הקטגוריה המתורגמת משויכת לפוסט.