- الحالة
- مفتوحة
نظرة عامة على المشكلة
لا تعمل دالة 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' )
يأخذ هذا المرشح التصنيف المترجم بناءً على اسم التصنيف الأصلي ويتحقق مما إذا كان التصنيف المترجم معيناً لمقالة.