WPML

In der ElasticPress-Integration gibt es nichts zu übersetzen. Das Kompatibilitäts-Plugin sorgt automatisch dafür, dass ElasticPress sprachlich korrekte Ergebnisse liefert. Ihre Aufgabe besteht darin, die Komponenten zu installieren, die erste Synchronisierung auszuführen und zu bestätigen, dass die Ergebnisse richtig aussehen.

Bevor Sie beginnen

Installieren und aktivieren Sie diese Plugins auf derselben Website:

Sie benötigen außerdem einen Elasticsearch-Endpunkt: selbst gehostet oder einen verwalteten Dienst wie ElasticPress.io (wird in einem neuen Tab geöffnet), Elastic Cloud oder AWS OpenSearch. Konfigurieren Sie ElasticPress für Ihren Elasticsearch-Host und bestätigen Sie, dass die Indizierung auf einer einsprachigen Website erfolgreich ist, bevor Sie die WPML-Ebene hinzufügen.

Konfigurieren Sie Ihre WPML-Sprachen, bevor Sie die erste Synchronisierung ausführen.

Wie die Indizierung pro Sprache funktioniert

WPML ElasticPress erstellt für jede Sprache auf Ihrer Website einen separaten Elasticsearch-Index. Der Index jeder Sprache enthält:

  • Übersetzungen in diese Sprache für jeden übersetzbaren Beitragstyp.
  • Beiträge in der Standardsprache für jeden Beitragstyp, der so eingestellt ist, dass er auf die Standardsprache zurückgreift, wenn keine Übersetzung vorhanden ist.
  • Kopien nicht übersetzbarer Beiträge. Der Index jeder Sprache enthält diese, damit sie unabhängig von der Sprache des Besuchers in den Suchergebnissen erscheinen können.

Jedes Dokument in einem Sprachindex wird in dieser Sprache analysiert. Stoppwörter, Wortstammbildung, Abkürzungen, Plural- und Tempusbehandlung sind alle sprachspezifisch. Dadurch stimmt die französische Suche mit französischen Wortstämmen und die japanische Suche mit der japanischen Morphologie überein. Ohne eine Analyse pro Sprache würde die Suchmaschine die Regeln einer Sprache auf den Text jeder anderen Sprache anwenden.

Für die Suche jedes Besuchers leitet WPML ElasticPress die Abfrage an den passenden Sprachindex weiter. Der Ergebnispool ist bereits nach der richtigen Sprache gefiltert, bevor das Relevanz-Ranking beginnt.

Führen Sie die erste Synchronisierung aus

Wenn die vier Plugins aktiv sind und ein Elasticsearch-Endpunkt in ElasticPress konfiguriert ist, führen Sie die erste Synchronisierung aus:

  1. Öffnen Sie ElasticPressSync im WordPress-Admin-Bereich.
  2. Klicken Sie auf Start Sync.

WPML ElasticPress löst eine Synchronisierung pro Sprache aus und erstellt die sprachspezifischen Indizes nacheinander. Auf einer großen Website kann dies einige Stunden dauern. Die Seite meldet den Fortschritt, während die Synchronisierung läuft.

Wenn Sie ein Update von WPML ElasticPress 1.0 auf 2.0 oder neuer durchführen, müssen Sie neu indizieren. Das Indexformat hat sich geändert, als Version 2.0 Indizes pro Sprache einführte.

Nach der ersten Synchronisierung fließen Inhaltsaktualisierungen automatisch in den richtigen Index. Wann immer Sie einen Beitrag erstellen, ändern oder löschen, aktualisiert WPML ElasticPress den entsprechenden Sprachindex im Hintergrund, basierend auf der Sprache des Beitrags oder der Übersetzungseinstellung für seinen Beitragstyp.

Bestimmte Sprachen mit WP-CLI indizieren

Für große Websites, geplante Aufgaben, Deployment-Skripte oder jeden Workflow, bei dem die Admin-Benutzeroberfläche keine Option ist, bietet WPML ElasticPress einen WP-CLI-Befehl (wp wpml_elasticpress sync), der die eigene CLI-Synchronisierung von ElasticPress umschließt und ein --post-lang-Flag für die Sprachauswahl hinzufügt.

Führen Sie die erste Synchronisierung nur für englische Beiträge aus:

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

Das Flag --setup löscht vorhandene Indizes vor der Neuerstellung. Nach diesem Befehl liefert die englische Suche englische Ergebnisse. Suchanfragen aus anderen Sprachen liefern keine Ergebnisse, da deren Indizes noch nicht erstellt wurden.

Fügen Sie eine zweite Sprache hinzu, ohne die vorhandenen Indizes zu löschen:

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

Wiederholen Sie dies für jede weitere Sprache. Lassen Sie --setup weg, damit zuvor indizierte Sprachen erhalten bleiben.

Synchronisieren Sie mehrere Sprachen in einem Durchlauf:

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

Passen Sie die Batch-Größe an, wenn der Arbeitsspeicher knapp ist:

wp wpml_elasticpress sync --per-page=200

Die Standard-Batch-Größe ist 350. Eine Verringerung hilft auf Servern mit begrenztem Arbeitsspeicher.

Erstellen Sie jeden Index von Grund auf neu:

wp wpml_elasticpress sync --setup

Dies löscht jeden Sprachindex und erstellt alle neu. Verwenden Sie dies, wenn etwas über alle Sprachen hinweg falsch aussieht oder nach einem größeren Upgrade.

So überprüfen Sie, ob ElasticPress-Suchen Inhalte in der richtigen Sprache liefern

Die technische Synchronisierung ist unkompliziert. Der Wert dieser Seite liegt in der Überprüfung. Gehen Sie diese Prüfungen durch, nachdem die erste Synchronisierung abgeschlossen ist, und erneut, wenn Sie Inhalte oder Einstellungen ändern, die sich auf das Suchverhalten auswirken.

1. Die Suche liefert aus jeder Sprache Ergebnisse in der jeweiligen Sprache

Wechseln Sie im Frontend den Sprachumschalter nacheinander auf jede Sprache und suchen Sie nach einem Begriff, von dem Sie wissen, dass er in übersetzter Form existiert.

  • Bestanden. Die Ergebnisseite listet nur Beiträge in dieser Sprache auf.
  • Nicht bestanden. Ergebnisse aus anderen Sprachen erscheinen neben den Treffern in derselben Sprache. Die Synchronisierung für diese Sprache wurde möglicherweise nicht abgeschlossen – überprüfen Sie ElasticPressSync auf Fehler und führen Sie den sprachspezifischen WP-CLI-Befehl erneut aus.

2. Inhalte, die nur in der Ausgangssprache vorliegen, liefern in anderen Sprachen null Ergebnisse

Wählen Sie einen Beitrag, der nur in Ihrer Standardsprache existiert – ohne Übersetzung in die anderen Sprachen auf der Website. Suchen Sie von einer Version der Website, die nicht in der Standardsprache ist, nach einer Phrase aus diesem Beitrag.

  • Bestanden. Null Ergebnisse. Der Beitrag ist nicht in die Sprache des Besuchers übersetzt, sollte also nicht erscheinen.
  • Nicht bestanden. Der Beitrag erscheint in den Ergebnissen. Das bedeutet normalerweise, dass der Beitragstyp unter WPMLEinstellungenBeitragstypen-Übersetzung so eingestellt ist, dass er auf die Standardsprache zurückgreift. Das ist eine Einstellung auf WPML-Ebene, kein Fehler. Wenn Sie diesen Fallback nicht beabsichtigt haben, ändern Sie die Einstellung.

Öffnen Sie einen übersetzten Beitrag im Frontend. Das Widget Related Posts sollte nur andere Beiträge in derselben Sprache auflisten.

  • Bestanden. Jeder ähnliche Beitrag verlinkt auf Inhalte in derselben Sprache wie die aktuelle Seite.
  • Nicht bestanden. Ähnliche Beiträge aus anderen Sprachen erscheinen. Bestätigen Sie, dass die Funktion Related Posts unter ElasticPressFeatures aktiviert ist und dass die Synchronisierung des Sprachindex für die aktuelle Sprache abgeschlossen ist.

Wenn die Funktion Documents in ElasticPress aktiviert ist: Laden Sie ein übersetztes PDF in die ausgangssprachliche Version eines Beitrags hoch und laden Sie dann ein PDF in einer anderen Sprache in dessen Übersetzung hoch. Suchen Sie nach einer Phrase, die nur im übersetzten PDF vorkommt.

  • Bestanden. Die Suche über das Frontend in der passenden Sprache liefert das richtige PDF. Die Suche in der Ausgangssprache liefert das übersetzte PDF nicht und umgekehrt.
  • Nicht bestanden. PDFs aus anderen Sprachen erscheinen in den Ergebnissen. Synchronisieren Sie nach der Aktivierung von Documents neu. Der Befehl wp wpml_elasticpress sync --setup erstellt jeden Index mit der Dokumentindizierung neu.

5. Backend-Suchen (Terms, Comments, Users) filtern nach Sprache

Wenn Sie die Funktionen Terms, Comments oder Users unter ElasticPressFeatures aktiviert haben, durchsuchen Sie diese im WordPress-Admin-Bereich und bestätigen Sie, dass die Ergebnisse nach der aktuellen Admin-Sprache gefiltert werden. Dies betrifft Benutzer, die das Backend einer mehrsprachigen Website durchsuchen.

6. Die Multisite-Synchronisierung löscht nicht die Indizes von Geschwister-Websites

Wenn Sie WPML und ElasticPress in einem Multisite-Netzwerk ausführen, führen Sie eine Indexsynchronisierung auf einer Website aus und überprüfen Sie dann die anderen Websites im Netzwerk. Deren Indizes sollten weiterhin intakt sein.

  • Bestanden. Die Indizierung einer Website lässt die Indizes von Geschwister-Websites unberührt.
  • Nicht bestanden. Geschwister-Indizes sind leer. Halten Sie an, führen Sie die Synchronisierungen auf den betroffenen Websites erneut aus und melden Sie das Problem dem WPML-Support, damit dieser bestätigen kann, ob Sie auf ein historisches Multisite-Problem oder ein neues stoßen.

Wenn jede der obigen Prüfungen bestanden wird, funktioniert Ihre mehrsprachige Suche wie vorgesehen.

Unterstützte ElasticPress-Funktionen

WPML ElasticPress sorgt derzeit dafür, dass die folgenden ElasticPress-Funktionen Sprachen berücksichtigen:

  • Post Search. Frontend-Suche über Beiträge, Seiten und benutzerdefinierte Beitragstypen hinweg.
  • Related Posts. Das Related-Posts-Widget filtert nach Treffern in derselben Sprache.
  • Documents. Suche innerhalb angehängter PDFs, .docx, .pptx und anderer Dateitypen.
  • Terms, Comments und Users. Backend-Suchen.

Die WooCommerce-spezifischen Suchfunktionen von ElasticPress (Produkterkennung, facettierte Produktfilterung, sofortige Produktsuche über Kataloge hinweg) sind derzeit nicht mehrsprachig. Die mehrsprachige Abdeckung für die WooCommerce-Suche steht auf der WPML-Roadmap. Bis es soweit ist, läuft die WooCommerce-Suche auf mehrsprachigen Websites über die Standardverarbeitung von WooCommerce Multilingual von WPML, nicht über ElasticPress.

Häufige Fallstricke

  • Die Synchronisierung wurde nach der Aktivierung einer neuen ElasticPress-Funktion nicht ausgeführt. Das Aktivieren von Documents oder Related Posts unter ElasticPressFeatures fügt diese Dokumente dem Index nicht rückwirkend hinzu. Synchronisieren Sie neu, nachdem Sie Funktionen umgeschaltet haben.
  • WP-CLI-Synchronisierung ohne --setup nach einer größeren Änderung. Wenn Sie geändert haben, welche Beitragstypen übersetzbar sind, welche Funktionen aktiviert sind, oder wenn Sie WPML ElasticPress über eine Hauptversionsgrenze hinweg aktualisiert haben, führen Sie wp wpml_elasticpress sync --setup aus, um jeden Index von Grund auf neu zu erstellen.
  • Das Suchergebnis-Template des Themes umgeht die Filter von ElasticPress. Einige benutzerdefinierte Themes implementieren ihre eigene Suchergebnis-Abfrage, die nicht über ElasticPress läuft. Wenn die Ergebnisse nur im Frontend falsch aussehen (und die Admin-Prüfungen bestehen), muss das Theme-Template möglicherweise aktualisiert werden.
  • Die WooCommerce-Produktsuche liefert Ergebnisse in gemischten Sprachen. Dies ist kein Synchronisierungsproblem. Es handelt sich um die oben erwähnte Lücke in der WooCommerce-Abdeckung. Leiten Sie die Produktsuche vorerst über die Standardverarbeitung von WooCommerce Multilingual.
  • Der Text von Documents erscheint nicht in der Suche. Bestätigen Sie, dass die Funktion Documents unter ElasticPressFeatures aktiviert ist und dass seit der Aktivierung eine Synchronisierung ausgeführt wurde.

Geschrieben vonAmir

Geschrieben vonAmir