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.