اكتشف القائمة الكاملة لثوابت وخطافات ACF Multilingual (ACFML)، مع أمثلة لاستخدامها في كودك.
خطافات ACF Multilingual (ACFML)
acfml_should_translate_acf_entity
يتيح لك هذا الخطاف تحديد ما إذا كان يجب ترجمة حقول أو مجموعات حقول ACF. باستخدام هذا المرشح، يمكنك تخطي ترجمة حقول أو مجموعات معينة بناءً على منطقك المخصص.
النوع: مرشح
التوفر: ACFML 2.1.4
المعلمات:
$shouldTranslate
(bool) (مطلوب) ما إذا كان يجب ترجمة الحقل أو مجموعة الحقول. القيمة الافتراضية هي true.
$entity
(array) (مطلوب) الكيان الذي تتم ترجمته، وهو إما مصفوفة حقل أو مصفوفة مجموعة.
$entityType
(string) (اختياري) نوع الكيان الذي تتم ترجمته. يمكن أن يكون إما 'field' أو 'group'.
مثال على استخدام الخطاف:
add_filter( 'acfml_should_translate_acf_entity', function( $shouldTranslate, $entity, $entityType ) {
if ( 'field' === $entityType ) {
return false;
}
return $shouldTranslate;
} );
acfml_field_group_mode_field_translation_preference
يتيح لك هذا المرشح تجاوز تفضيل الترجمة الافتراضي لحقول ACF عندما تستخدم مجموعة الحقول وضع نفس الحقول أو حقول مختلفة.
ملاحظة: يغيّر هذا المرشح تفضيل الترجمة الافتراضي فقط، وليس التفضيل المحفوظ للحقول الفردية. إذا قمت بتعديل الافتراضي، فستحتاج إلى إعادة حفظ مجموعات الحقول المتأثرة ليتم تطبيق الافتراضي الجديد.
النوع: مرشح
التوفر: ACFML 2.0.0
المعلمات:
$fieldTranslationPreference (int) (مطلوب) تفضيل الترجمة الافتراضي للحقل. القيم الممكنة:
0— عدم الترجمة. يتجاهل WPML الحقل بالكامل.1— نسخ. يتم نسخ قيمة الحقل إلى جميع اللغات وتبقى متزامنة.2— ترجمة. تصبح قيمة الحقل متاحة للترجمة.3— نسخ مرة واحدة. يتم نسخ قيمة الحقل إلى جميع اللغات مرة واحدة، وبعد ذلك يمكن تعديلها في كل لغة بشكل مستقل.
$groupMode (string) (مطلوب) وضع ترجمة مجموعة الحقول. القيم الممكنة: translation أو localization.
$field (array) (مطلوب) مصفوفة حقل ACF.
مثال على استخدام الخطاف:
add_filter( 'acfml_field_group_mode_field_translation_preference', function( $fieldTranslationPreference, $groupMode, $field ) {
$fieldType = $field['type'] ?? null;
if ( 'link' === $fieldType ) {
return 2; // WPML_TRANSLATE_CUSTOM_FIELD
}
return $fieldTranslationPreference;
}, 10, 3 );
يفرض هذا المثال أن يكون نوع الحقل link قابلاً للترجمة، متجاوزاً تفضيله الافتراضي copy أو copy_once.
ثوابت ACF Multilingual (ACFML)
ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS
بدءاً من الإصدار ACFML 2.1.5، يمكنك استخدام هذا الثابت لتضمين السلاسل النصية لمجموعة الحقول في مهمة ترجمة المقالة.
لتمكين ذلك، أضف السطر التالي إلى ملف wp-config.php الخاص بك:
define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );
ملاحظات:
- إذا قمت بإنشاء مهمة ترجمة قبل إضافة هذا الكود إلى ملف wp-config.php، فقم بإلغائها وإنشاء مهمة جديدة.
- يمكنك إرسال تسميات الحقول والخيارات للترجمة عبر لوحة إدارة الترجمة إذا لزم الأمر.
ACFML_HIDE_FIELD_ANNOTATIONS
إلى كل حقل مترجم، تضيف إضافة ACF Multilingual معلومات حول القيمة في اللغة الأصلية.
لإزالة هذه المعلومات من الحقول المترجمة، يمكنك إضافة السطر التالي إلى ملف wp-config.php الخاص بموقعك:
define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );
ACFML_REPEATER_SYNC_DEFAULT
يمكنك استخدام هذا الثابت لتعيين القيمة الافتراضية لميزة مزامنة حقل Repeater. وهي معينة على true افتراضياً. وهذا يعني أن حقول Repeater تتم مزامنتها تلقائياً عبر الترجمات. إذا قمت بتعيين هذا الثابت على false، فسيتم تعطيل مزامنة حقل Repeater.
يمكنك تجاوز القيمة الافتراضية لثابت ACFML_REPEATER_SYNC_DEFAULT في ملف functions.php الخاص بقالبك:
define('ACFML_REPEATER_SYNC_DEFAULT', false);
ACFML_SCAN_LOCAL_FIELDS
يؤدي تعيين هذا الثابت على false إلى تعطيل فحص ملفات JSON بحثاً عن الحقول المحلية.
وهذا يعني أنه إذا قمت بتغيير تفضيل الترجمة في الحقول المحلية، فلن تتم مزامنته مع قاعدة البيانات. ستحتاج إلى تعيين تفضيل الترجمة يدوياً للحقول.
لمزيد من المعلومات، راجع وثائق ACF الرسمية حول استخدام JSON المحلي.