WPML

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 hook vous permet de déterminer si les champs ou les groupes de champs ACF doivent être traduits. En utilisant ce filtre, vous pouvez ignorer la traduction de champs ou de groupes spécifiques en fonction de votre propre logique.

Type : Filtre

Disponibilité : ACFML 2.1.4

Paramètres :

$shouldTranslate
(bool) (Requis) 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 soit un tableau de champs, soit un tableau de groupes.

$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;
} );

acfml_field_group_mode_field_translation_preference

Ce filtre vous permet de remplacer la préférence de traduction par défaut des champs ACF lorsqu’un groupe de champs utilise le mode Mêmes champs ou Champs différents.

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 :

  • 0Ne pas traduire. WPML ignore complètement le champ.
  • 1Copier. La valeur du champ est copiée dans toutes les langues et reste synchronisée.
  • 2Traduire. La valeur du champ est rendue disponible pour la traduction.
  • 3Copier 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 ( 'link' === $fieldType ) {
        return 2; // WPML_TRANSLATE_CUSTOM_FIELD
    }

    return $fieldTranslationPreference;
}, 10, 3 );

Cet exemple force le type de champ link à être traduisible, remplaçant ainsi sa préférence copy ou copy_once par défaut.

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 de texte du groupe de champs dans la tâche de traduction de l’article.

Pour l’activer, 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 étiquettes et les choix des champs pour traduction via le Tableau de bord de traduction si nécessaire.

ACFML_HIDE_FIELD_ANNOTATIONS

À chaque champ traduit, ACF Multilingual ajoute des informations concernant 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

Vous pouvez utiliser cette constante pour définir la valeur par défaut de la fonctionnalité de synchronisation du champ Répéteur. Elle est définie sur true par défaut. Cela signifie que les champs Répéteur sont automatiquement synchronisés entre les traductions. Si vous définissez cette constante sur false, la synchronisation du champ Répéteur sera désactivée.

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

Définir cette constante sur false désactive l’analyse des fichiers JSON pour les champs locaux.

Cela signifie que si vous modifiez la préférence de traduction dans les champs locaux, elle ne sera pas synchronisée avec la base de données. Vous devez définir manuellement la préférence de traduction pour les champs.

Pour plus d’informations, consultez la documentation officielle d’ACF sur l’utilisation du JSON local.

Écrit par Amir · Dernière mise à jour 30 juin 2026