D’un côté, Advanced Custom Fields et son couple bien rodé avec WPML. De l’autre, Meta Box et sa collection de composants gratuits, plus permissive mais moins encadrée. Le terrain de comparaison choisi ici : une page d’offre d’emploi avec deux champs répétables, l’un pour les compétences recherchées, l’autre pour les avantages proposés, à traduire en anglais pour une entreprise industrielle qui recrute aussi hors de France.
Ce comparatif s’appuie sur une mise en œuvre réelle des deux solutions sur une copie du même site, pour isoler les différences de comportement plutôt que de se fier à la documentation marketing de chaque extension.
Le champ répétable dans Advanced Custom Fields
Avec ACF Pro, un champ répétable « competences » contenant un sous-champ texte se déclare simplement via l’interface d’administration, sans code. Pour le rendre traduisible avec WPML, il faut ensuite se rendre dans les réglages de traduction de WPML pour les champs personnalisés, et déclarer chaque sous-champ comme « Traduisible » plutôt que « Copier » ou « Ne pas traduire ». Ce réglage se fait une fois par groupe de champs, mais doit être revérifié à chaque ajout d’un nouveau sous-champ, ce qui est facile à oublier.
- Configuration entièrement en interface graphique, sans code PHP nécessaire
- Traduction gérée directement dans l’éditeur classique de traduction de WPML
- Risque d’oubli de configuration à chaque nouveau sous-champ ajouté au répéteur
Le champ répétable dans Meta Box
Meta Box, dans sa version gratuite, propose un champ de type group avec l’option clone activée pour simuler un répéteur. La traduction de ce type de champ n’est pas prise en charge nativement par une interface graphique équivalente à celle de WPML pour ACF : il faut enregistrer manuellement chaque sous-champ comme traduisible via le filtre approprié.

add_filter( 'wpml_meta_boxes_to_translate', function( $fields ) {
$fields[] = 'competence_intitule';
$fields[] = 'avantage_libelle';
return $fields;
} );
Cette méthode demande une ligne de code par sous-champ, ce qui représente un investissement initial plus lourd que l’interface graphique d’ACF Pro, mais offre en contrepartie une vision explicite et versionnée (dans un fichier de code, donc suivie par un système de gestion de versions) de ce qui est traduisible et de ce qui ne l’est pas.
Le comportement à l’ajout d’une ligne
Sur ACF, l’ajout d’une nouvelle ligne dans le répéteur en langue source déclenche automatiquement une ligne correspondante, vide, dans la traduction existante, prête à être remplie. Sur Meta Box, sans configuration additionnelle, l’ajout d’une ligne en langue source n’a aucun effet automatique sur la traduction : le rédacteur doit penser à ajouter la ligne manquante lui-même dans chaque langue.
Comparatif synthétique
| Critère | ACF Pro + WPML | Meta Box + WPML |
|---|---|---|
| Configuration initiale | Interface graphique complète | Code PHP requis pour chaque sous-champ |
| Synchronisation des lignes ajoutées | Automatique | Manuelle sans développement additionnel |
| Coût | Licence ACF Pro payante | Composants de base gratuits |
| Contrôle du code | Moins de visibilité, tout en base de données | Configuration versionnable en code |
Le formulaire de candidature côté visiteur
Au-delà du contenu de la page, le formulaire de candidature lui-même (souvent construit avec Gravity Forms ou Contact Form 7) doit lui aussi être traduit, avec ses libellés de champ et ses messages de confirmation. Sur ce projet, ce point a demandé un travail équivalent quel que soit le choix retenu pour les champs répétables, ce qui n’a pas influencé le verdict final.
Un conseil que je donne systématiquement aux clients hésitants : choisir en fonction de la compétence disponible en interne pour la maintenance, pas seulement en fonction du prix de la licence.
Verdict
Pour une entreprise disposant déjà d’ACF Pro pour d’autres besoins du site, rester sur ACF pour ce formulaire de recrutement reste le choix le plus économe en temps de développement, grâce à la synchronisation automatique des lignes de répéteur. Pour un projet démarrant de zéro sans budget de licence, Meta Box avec un peu de code personnalisé fait parfaitement le travail, à condition d’accepter un effort de configuration initial plus élevé et une vigilance accrue sur la synchronisation manuelle des lignes.