Un site institutionnel présentait chaque projet avec un champ de relation ACF pointant vers les « partenaires associés », eux-mêmes gérés comme un type de contenu personnalisé distinct. Une fois la traduction anglaise activée avec WPML, chaque page projet traduite affichait une liste de partenaires vide, alors que la version française fonctionnait parfaitement. Aucune erreur PHP, aucun message dans les journaux : juste un champ de relation qui ne retrouvait plus ses articles liés une fois traduit.
Ce symptôme classique vient d’une confusion très répandue : un champ de relation ACF stocke, en base de données, une liste d’identifiants d’articles. Or chaque traduction WPML d’un article possède son propre identifiant, distinct de l’article source. Sans configuration explicite, la traduction du champ de relation recopie donc les identifiants des articles en français, qui n’ont évidemment aucune traduction anglaise du même identifiant.
Comprendre les modes de traduction de champs sous WPML
Dans l’écran WPML > Réglages des champs personnalisés, chaque groupe de champs ACF détecté propose un menu déroulant avec plusieurs modes possibles : « Ne pas traduire », « Copier », « Copier une fois », et surtout « Traduire » qui prend un sens particulier selon le type de champ concerné. Pour un champ texte simple, « Traduire » ouvre le champ dans l’éditeur de traduction comme n’importe quel contenu. Pour un champ de relation, de type post object, ou un champ répéteur contenant lui-même des relations, le comportement est plus subtil.
WPML propose, depuis ses versions récentes, un mode spécifique pour les champs de relation qui recherche automatiquement, pour chaque article lié, sa traduction existante dans la langue cible, plutôt que de recopier l’identifiant source tel quel. Ce mode doit être sélectionné explicitement pour chaque champ de relation du projet, il n’est jamais activé par défaut lors de la simple détection du champ.
Configurer le champ de relation étape par étape
- Ouvrez WPML > Réglages des champs personnalisés et repérez le groupe de champs ACF concerné, ici « Partenaires associés ».
- Sélectionnez le mode de traduction adapté au type de relation (article vers article traduit) plutôt que le mode par défaut « Copier ».
- Enregistrez les réglages, puis ouvrez une traduction existante déjà publiée pour vérifier si la relance de traduction met à jour le champ.
- Si le champ reste vide après cette étape, republiez la traduction depuis l’éditeur ACF directement pour forcer la resynchronisation du champ de relation.

Le cas des champs répéteurs imbriqués
Les champs répéteurs ACF, qui contiennent souvent plusieurs sous-champs dont certains de type relation, demandent une attention supplémentaire : WPML doit détecter chaque sous-champ individuellement, et chacun peut nécessiter son propre mode de traduction. Sur ce projet, le répéteur « Ressources associées » contenait un sous-champ texte (le libellé affiché) et un sous-champ relation (l’article ciblé) : le premier a été configuré en « Traduire », le second avec le mode relation dédié.
- Un groupe de champs jamais scanné par WPML n’apparaît pas dans la liste des réglages de champs personnalisés : pensez à relancer un scan après toute modification de la structure ACF.
- Les champs de type « Post Object » et « Relationship » suivent la même logique de configuration.
- Un champ de type « Page Link » se comporte différemment et mérite une vérification isolée de son comportement après traduction.
Vérifier sans se fier uniquement à l’affichage frontal
Un champ de relation mal configuré peut parfois sembler fonctionner par coïncidence, notamment si les identifiants d’articles français et anglais se recoupent accidentellement dans un système de test avec peu de contenu. Je recommande de vérifier directement en base de données, ou plus simplement dans l’éditeur ACF de la traduction, que le champ de relation affiche bien les bons articles anglais sélectionnés, et non une copie brute des articles français.
Sur un site avec des relations ACF complexes, je teste toujours avec au moins deux articles liés différents entre la langue source et la langue cible, jamais avec le même contenu dupliqué dans les deux langues : cela révèle immédiatement une mauvaise configuration du mode de traduction.
Anticiper l’extension dédiée
WPML propose par ailleurs une extension complémentaire dédiée spécifiquement aux champs ACF, qui automatise une partie de cette configuration pour les projets aux structures de champs complexes. Ce module mérite un article à part entière tant sa configuration diffère de l’approche manuelle décrite ici ; cet article se concentre volontairement sur la configuration native disponible sans extension supplémentaire, suffisante pour la majorité des projets aux relations simples.
En résumé
Un champ de relation ACF qui se vide après traduction n’est presque jamais un bug de WPML : c’est un mode de traduction mal configuré, resté sur « Copier » au lieu du mode dédié aux relations. La configuration se fait champ par champ dans les réglages WPML, y compris pour les sous-champs de répéteurs, et mérite une vérification directe dans l’éditeur de la traduction plutôt qu’une simple confiance dans l’affichage frontal du site.