Problemas comunes
Problemas comunesPolylang se comporta mal

Polylang se comporta mal

Al usar la extensión Polylang, y notas los siguientes problemas al obtener datos usando GraphQL desde un endpoint público:

  • Polylang no detecta correctamente el idioma actual para las peticiones GraphQL
  • El contenido específico del idioma no se filtra correctamente
  • Obtienes contenido en el idioma equivocado o ningún contenido en absoluto

...y has hecho cualquiera de los siguientes en Gato GraphQL:

  • Actualizado la ruta del GraphQL Single Endpoint
  • Actualizado el slug base de los Custom Endpoints o Persisted Queries
  • Deshabilitado cualquier endpoint (deshabilitando el módulo correspondiente)

...entonces debes aplicar la misma modificación mediante un hook, para evitar el conflicto.

Por qué sucede esto

Hay un conflicto de tiempos entre la inicialización de Polylang y la configuración del contenedor de servicios de Gato GraphQL.

Polylang establece los filtros pll_model y pll_context durante su proceso de inicialización. Como Gato GraphQL aún no está inicializado, no puede recuperar las rutas correctas de los endpoints de la base de datos, para determinar si la petición viene de un endpoint GraphQL y sobrescribir el modelo y el contexto con los correctos (PLL_Admin_Model y PLL_Admin respectivamente).

Solución temporal

Cuando Polylang establece los filtros pll_model y pll_context, Gato GraphQL asume las rutas por defecto para los endpoints GraphQL.

Entonces, si modificas la ruta de cualquier endpoint público vía los Ajustes del plugin, debes aplicar la misma modificación vía hook.

Lee la guía Replicando actualizaciones de ruta del endpoint GraphQL vía hooks para la solución.