Häufige Probleme
Häufige ProblemePolylang verhält sich falsch

Polylang verhält sich falsch

Wenn du die Polylang-Erweiterung verwendest und beim Abrufen von Daten über GraphQL von einem öffentlichen Endpoint die folgenden Probleme auftreten:

  • Polylang erkennt die aktuelle Sprache für GraphQL-Anfragen nicht korrekt
  • Sprachspezifische Inhalte werden nicht korrekt gefiltert
  • Du erhältst Inhalte in der falschen Sprache oder gar keine Inhalte

...und du in Gato GraphQL eine der folgenden Änderungen vorgenommen hast:

  • Den Pfad des GraphQL Single Endpoint geändert
  • Den Basis-Slug von Custom Endpoints oder Persisted Queries geändert
  • Einen Endpoint deaktiviert (durch Deaktivieren des entsprechenden Moduls)

...dann musst du dieselbe Änderung auch über einen Hook anwenden, um den Konflikt zu vermeiden.

Warum das passiert

Es gibt einen Timing-Konflikt zwischen der Initialisierung von Polylang und der Einrichtung des Service-Containers von Gato GraphQL.

Polylang setzt die Filter pll_model und pll_context während seines Initialisierungsprozesses. Da Gato GraphQL noch nicht initialisiert ist, kann es die korrekten Endpoint-Pfade nicht aus der Datenbank abrufen, um zu bestimmen, ob die Anfrage von einem GraphQL-Endpoint stammt, und das Modell sowie den Kontext mit den richtigen Werten zu überschreiben (PLL_Admin_Model bzw. PLL_Admin).

Workaround

Wenn Polylang die Filter pll_model und pll_context setzt, geht Gato GraphQL von den Standard-Pfaden für die GraphQL-Endpoints aus.

Wenn du also den Pfad eines öffentlichen Endpoints über die Plugin-Einstellungen änderst, musst du dieselbe Änderung auch über einen Hook anwenden.

Lies die Anleitung GraphQL-Endpoint-Pfad-Änderungen über Hooks replizieren für die Lösung.