WPML
סטטוס
פתוח

סקירה כללית של התקלה

הפונקציה המובנית של WordPress has_category אינה עובדת עבור פוסטים מתורגמים.

להלן דוגמה לכך:

  1. יש לנו קטגוריה עם מזהה הכתובת באנגלית “test” והתרגום שלה לצרפתית “test-fr”.
  2. קטגוריה זו משויכת לפוסטים.
  3. כאשר אתה קורא ל־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' )

פילטר זה לוקח את הקטגוריה המתורגמת על סמך השם של הקטגוריה המקורית ובודק אם הקטגוריה המתורגמת משויכת לפוסט.

כל התקלות הידועות →