Découvrez la liste complète des constantes et des hooks d’ACF Multilingual (ACFML), avec des exemples pour les utiliser dans votre code.
Hooks d’ACF Multilingual (ACFML)
acfml_should_translate_acf_entity
Ce filtre détermine si ACFML affiche les libellés traduits d’un champ ou d’un groupe de champs ACF. Renvoyez false pour afficher les libellés d’origine dans toutes les langues. Les valeurs des champs ne changent pas.
Type : Filtre
Disponibilité : ACFML 2.1.4
Paramètres :
$shouldTranslate
(bool) (Requis) Indique si le champ ou le groupe de champs doit être traduit. La valeur par défaut est true.
$entity
(array) (Requis) L’entité en cours de traduction, qui est un tableau de champ ou un tableau de groupe.
$entityType
(string) (Facultatif) Le type de l’entité en cours de traduction. Il peut s’agir de « field » ou de « group ».
Exemple d’utilisation du hook :
add_filter( 'acfml_should_translate_acf_entity', function( $shouldTranslate, $entity, $entityType ) {
if ( 'field' === $entityType ) {
return false;
}
return $shouldTranslate;
}, 10, 3 );
acfml_field_group_mode_field_translation_preference
Ce filtre vous permet de remplacer la préférence de traduction par défaut pour les champs ACF lorsqu’un groupe de champs utilise Same content in every language, translated ou Each language has its own content.
Remarque : Ce filtre modifie uniquement la préférence de traduction par défaut, et non la préférence enregistrée pour les champs individuels. Si vous modifiez la valeur par défaut, vous devez enregistrer à nouveau les groupes de champs concernés pour que la nouvelle valeur par défaut s’applique.
Type : Filtre
Disponibilité : ACFML 2.0.0
Paramètres :
$fieldTranslationPreference (int) (Requis) La préférence de traduction par défaut pour le champ. Valeurs possibles :
0— Ne pas traduire. WPML ignore complètement le champ.1— Copier. La valeur du champ est copiée dans toutes les langues et reste synchronisée.2— Traduire. La valeur du champ est rendue disponible pour la traduction.3— Copier une fois. La valeur du champ est copiée une fois dans toutes les langues, après quoi elle peut être modifiée indépendamment dans chaque langue.
$groupMode (string) (Requis) Le mode de traduction du groupe de champs. Valeurs possibles : translation ou localization.
$field (array) (Requis) Le tableau du champ ACF.
Exemple d’utilisation du hook :
add_filter( 'acfml_field_group_mode_field_translation_preference', function( $fieldTranslationPreference, $groupMode, $field ) {
$fieldType = $field['type'] ?? null;
if ( 'url' === $fieldType ) {
return 1; // WPML_COPY_CUSTOM_FIELD
}
return $fieldTranslationPreference;
}, 10, 3 );
Cet exemple donne au type de champ url la préférence Copier au lieu de sa préférence recommandée Traduire.
Constantes d’ACF Multilingual (ACFML)
ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS
À partir d’ACFML 2.1.5, vous pouvez utiliser cette constante pour inclure les chaînes du groupe de champs dans la tâche de traduction de l’article.
Pour activer cela, ajoutez la ligne suivante à votre fichier wp-config.php :
define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );
Remarques :
- Si vous avez créé une tâche de traduction avant d’ajouter ce code à votre fichier wp-config.php, annulez-la et créez-en une nouvelle.
- Vous pouvez envoyer les libellés et les choix des champs pour traduction via le Tableau de bord de traduction si nécessaire.
ACFML_HIDE_FIELD_ANNOTATIONS
Pour chaque champ traduit, ACF Multilingual ajoute des informations sur la valeur dans la langue d’origine.
Pour supprimer ces informations des champs traduits, vous pouvez ajouter la ligne suivante au fichier wp-config.php de votre site :
define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );
ACFML_REPEATER_SYNC_DEFAULT
Cette constante définit l’état par défaut de la case à cocher Keep repeater and flexible sub-fields in the same order as the default language. ACFML affiche cette case à cocher dans la boîte ACFML Synchronise translations d’un article qui utilise l’option Expert. La valeur par défaut est true, la case est donc cochée au départ. Définissez la constante sur false pour commencer avec la case décochée. Un choix que vous enregistrez sur un article remplace cette valeur par défaut.
Vous pouvez remplacer la valeur par défaut de ACFML_REPEATER_SYNC_DEFAULT dans le fichier functions.php de votre thème :
define('ACFML_REPEATER_SYNC_DEFAULT', false);
ACFML_SCAN_LOCAL_FIELDS
Cette constante définit la valeur par défaut du paramètre Sync Translation Preferences for Local Fields dans ACFOutils. Définissez-la sur true pour synchroniser les préférences de traduction des champs locaux (champs JSON locaux et enregistrés en PHP) à chaque requête dans l'interface d'administration. Lorsque la constante n’est pas définie ou est définie sur false, ACFML ne les synchronise pas automatiquement.
Un choix que vous enregistrez dans ACFOutils remplace cette constante. Pour synchroniser une seule fois, sélectionnez-y Sync once now et cliquez sur Appliquer.
Pour plus d’informations, consultez la documentation officielle d’ACF sur l’utilisation du JSON local (s'ouvre dans un nouvel onglet).