WPML

Il n'y a rien à traduire dans l'intégration d'ElasticPress. L'extension de compatibilité permet à ElasticPress de renvoyer automatiquement des résultats dans la bonne langue ; votre tâche consiste à installer les éléments, à exécuter la synchronisation initiale et à confirmer que les résultats semblent corrects.

Avant de commencer

Installez et activez ces extensions sur le même site :

Vous avez également besoin d'un point de terminaison Elasticsearch : auto-hébergé, ou un service géré comme ElasticPress.io, Elastic Cloud ou AWS OpenSearch. Configurez ElasticPress avec votre hôte Elasticsearch et confirmez qu'il indexe correctement sur un site monolingue avant d'ajouter la couche WPML.

Configurez vos langues WPML avant d'exécuter la première synchronisation.

Comment fonctionne l'indexation par langue

WPML ElasticPress crée un index Elasticsearch distinct pour chaque langue de votre site. L'index de chaque langue contient :

  • Les traductions dans cette langue pour chaque type de publication traduisible.
  • Les articles dans la langue par défaut pour tout type de publication configuré pour se rabattre sur la langue par défaut lorsqu'aucune traduction n'existe.
  • Des copies des articles non traduisibles. L'index de chaque langue les inclut afin qu'ils puissent apparaître dans les résultats de recherche, quelle que soit la langue du visiteur.

Chaque document dans un index de langue est analysé dans cette langue. Les mots vides, la racinisation, les abréviations, ainsi que la gestion du pluriel et des temps sont tous spécifiques à la langue. C'est ce qui permet à une recherche en français de correspondre aux racines françaises et à une recherche en japonais de correspondre à la morphologie japonaise ; sans analyse par langue, le moteur de recherche appliquerait les règles d'une seule langue au texte de toutes les autres langues.

Pour chaque recherche de visiteur, WPML ElasticPress achemine la requête vers l'index de langue correspondant. Le groupe de résultats est déjà filtré dans la bonne langue avant que le classement par pertinence ne commence.

Exécutez la synchronisation initiale

Avec les quatre extensions actives et un point de terminaison Elasticsearch configuré dans ElasticPress, exécutez la synchronisation initiale :

  1. Ouvrez ElasticPress > Sync dans l'interface d'administration de WordPress.
  2. Cliquez sur Start Sync.

WPML ElasticPress déclenche une synchronisation par langue et construit les index par langue les uns après les autres. Sur un grand site, cela peut prendre quelques heures ; la page signale la progression au fur et à mesure de la synchronisation.

Si vous effectuez une mise à jour de WPML ElasticPress 1.0 vers la version 2.0 ou ultérieure, réindexez. Le format de l'index a changé lorsque la version 2.0 a introduit les index par langue.

Après la synchronisation initiale, les mises à jour de contenu sont automatiquement intégrées au bon index. Chaque fois que vous créez, modifiez ou supprimez un article, WPML ElasticPress met à jour l'index de langue correspondant en arrière-plan en fonction de la langue de cet article ou du paramètre de traduction de son type de publication.

Indexation de langues spécifiques avec WP-CLI

Pour les grands sites, les tâches planifiées, les scripts de déploiement ou tout flux de travail où l'interface d'administration n'est pas une option, WPML ElasticPress fournit une commande WP-CLI (wp wpml_elasticpress sync) qui enveloppe la propre synchronisation CLI d'ElasticPress et ajoute un indicateur --post-lang pour la sélection de la langue.

Exécutez la synchronisation initiale uniquement pour les articles en anglais :

wp wpml_elasticpress sync --setup --post-type=post --post-lang=en

L'indicateur --setup efface les index existants avant la reconstruction. Après cette commande, la recherche en anglais renvoie des résultats en anglais ; les recherches depuis d'autres langues ne renvoient rien car leurs index n'ont pas encore été construits.

Ajoutez une deuxième langue sans effacer les index existants :

wp wpml_elasticpress sync --post-type=post --post-lang=fr

Répétez l'opération pour chaque langue supplémentaire. Omettez --setup afin que les langues précédemment indexées restent en place.

Synchronisez plusieurs langues en une seule exécution :

wp wpml_elasticpress sync --post-lang=en,es

Ajustez la taille du lot si la mémoire est limitée :

wp wpml_elasticpress sync --per-page=200

La taille de lot par défaut est de 350 ; la réduire est utile sur les serveurs avec peu de mémoire.

Reconstruisez chaque index à partir de zéro :

wp wpml_elasticpress sync --setup

Cela efface tous les index de langue et les reconstruit tous. Utilisez cette commande lorsque quelque chose semble incorrect dans toutes les langues ou après une mise à jour majeure.

Comment vérifier que les recherches ElasticPress renvoient le contenu dans la bonne langue

La synchronisation technique est simple ; la valeur de cette page réside dans la vérification. Effectuez ces vérifications une fois la synchronisation initiale terminée, et à nouveau chaque fois que vous modifiez du contenu ou des paramètres qui affectent le comportement de recherche.

1. La recherche renvoie des résultats dans la même langue pour chaque langue

Depuis l'interface publique, basculez le sélecteur de langue sur chaque langue tour à tour et recherchez un terme dont vous savez qu'il existe sous forme traduite.

  • Succès. La page de résultats répertorie uniquement les articles dans cette langue.
  • Échec. Des résultats dans d'autres langues apparaissent à côté des correspondances dans la même langue. La synchronisation peut ne pas s'être terminée pour cette langue – vérifiez s'il y a des erreurs dans ElasticPress > Sync et exécutez à nouveau la commande WP-CLI spécifique à la langue.

2. Le contenu uniquement dans la langue source ne renvoie aucun résultat dans les autres langues

Choisissez un article qui n'existe que dans votre langue par défaut – aucune traduction dans les autres langues du site. À partir d'une version du site dans une langue autre que celle par défaut, recherchez une expression de cet article.

  • Succès. Zéro résultat. L'article n'est pas traduit dans la langue du visiteur, il ne devrait donc pas apparaître.
  • Échec. L'article apparaît dans les résultats. Cela signifie généralement que le type de publication est configuré pour se rabattre sur la langue par défaut dans WPML > Paramètres > Traduction des types de publication. Il s'agit d'un paramètre au niveau de WPML, pas d'un bug. Si vous ne souhaitiez pas ce comportement, modifiez le paramètre.

Ouvrez un article traduit sur l'interface publique. Le widget Related Posts ne devrait répertorier que d'autres articles dans la même langue.

  • Succès. Chaque article similaire renvoie à du contenu dans la même langue que la page actuelle.
  • Échec. Des articles similaires dans d'autres langues apparaissent. Confirmez que la fonctionnalité Related Posts est activée dans ElasticPress > Features et que l'index de langue pour la langue actuelle a terminé sa synchronisation.

Si la fonctionnalité Documents est activée dans ElasticPress : téléversez un PDF traduit dans la version en langue source d'un article, puis téléversez un PDF dans une autre langue dans sa traduction. Recherchez une expression qui n'apparaît que dans le PDF traduit.

  • Succès. La recherche depuis l'interface publique dans la langue correspondante renvoie le bon PDF ; la recherche dans la langue source ne renvoie pas le PDF traduit et inversement.
  • Échec. Des PDF dans d'autres langues apparaissent dans les résultats. Resynchronisez après avoir activé Documents. La commande wp wpml_elasticpress sync --setup reconstruit chaque index avec l'indexation de documents.

5. Les recherches en arrière-plan (termes, commentaires, utilisateurs) filtrent par langue

Si vous avez activé les fonctionnalités Terms, Comments ou Users dans ElasticPress > Features, recherchez-les depuis l'interface d'administration de WordPress et confirmez que les résultats sont filtrés par la langue d'administration actuelle. Cela affecte les utilisateurs qui effectuent des recherches dans l'interface d'administration d'un site multilingue.

6. La synchronisation multisite n'efface pas les index des sites frères

Si vous utilisez WPML et ElasticPress sur un réseau multisite, exécutez une synchronisation d'index sur un site, puis vérifiez les autres sites du réseau. Leurs index devraient toujours être intacts.

  • Succès. L'indexation d'un site laisse intacts les index des sites frères.
  • Échec. Les index frères sont vides. Arrêtez, réexécutez les synchronisations sur les sites concernés et signalez le problème au Support de WPML afin qu'ils puissent confirmer si vous rencontrez un problème de réseau multisite historique ou un nouveau.

Si toutes les vérifications ci-dessus sont réussies, votre recherche multilingue fonctionne comme prévu.

Fonctionnalités ElasticPress prises en charge

WPML ElasticPress rend actuellement les fonctionnalités ElasticPress suivantes sensibles à la langue :

  • Post Search. Recherche sur l'interface publique dans les articles, les pages et les types de publication personnalisés.
  • Related Posts. Le widget des articles similaires filtre pour n'afficher que les correspondances dans la même langue.
  • Documents. Recherche à l'intérieur des PDF joints, des fichiers .docx, .pptx et d'autres types de fichiers.
  • Terms, Comments et Users. Recherches en arrière-plan.

Les fonctionnalités de recherche spécifiques à WooCommerce d'ElasticPress (découverte de produits, filtrage de produits à facettes, recherche instantanée de produits dans les catalogues) ne sont actuellement pas multilingues. La couverture multilingue pour la recherche WooCommerce est sur la feuille de route de WPML ; en attendant, la recherche WooCommerce sur les sites multilingues passe par la gestion standard de WooCommerce Multilingual de WPML, et non par ElasticPress.

Pièges courants

  • La synchronisation n'a pas été exécutée après l'activation d'une nouvelle fonctionnalité ElasticPress. L'activation de Documents ou Related Posts dans ElasticPress > Features n'ajoute pas rétroactivement ces documents à l'index. Resynchronisez après avoir activé ou désactivé des fonctionnalités.
  • Synchronisation WP-CLI sans --setup après un changement majeur. Si vous avez modifié les types de publication traduisibles, les fonctionnalités activées, ou mis à jour WPML ElasticPress vers une nouvelle version majeure, exécutez wp wpml_elasticpress sync --setup pour reconstruire chaque index à partir de zéro.
  • Le modèle de résultats de recherche du thème contourne les filtres d'ElasticPress. Certains thèmes personnalisés implémentent leur propre requête de résultats de recherche qui ne passe pas par ElasticPress. Si les résultats semblent incorrects uniquement sur l'interface publique (et réussissent les vérifications d'administration), le modèle du thème devra peut-être être mis à jour.
  • La recherche de produits WooCommerce renvoie des résultats dans plusieurs langues. Il ne s'agit pas d'un problème de synchronisation. C'est la lacune de couverture de WooCommerce mentionnée ci-dessus. Pour l'instant, acheminez la recherche de produits via la gestion standard de WooCommerce Multilingual.
  • Le texte des documents n'apparaît pas dans la recherche. Confirmez que la fonctionnalité Documents est activée dans ElasticPress > Features et qu'une synchronisation a été exécutée depuis son activation.

Écrit par Amir · Dernière mise à jour le 2 juillet 2026

Écrit par Amir · Dernière mise à jour 2 juillet 2026