Polylang si comporta male
Quando si utilizza l'estensione Polylang e si notano i seguenti problemi durante il recupero dei dati tramite GraphQL da un endpoint pubblico:
- Polylang non rileva correttamente la lingua attuale per le richieste GraphQL
- Il contenuto specifico della lingua non viene filtrato correttamente
- Si ottiene contenuto nella lingua sbagliata o nessun contenuto
...e si è effettuata una delle seguenti operazioni in Gato GraphQL:
- Aggiornato il percorso del GraphQL Single Endpoint
- Aggiornato lo slug di base dei Custom Endpoints o delle Persisted Queries
- Disabilitato un endpoint (disabilitando il modulo corrispondente)
...allora è necessario applicare la stessa modifica tramite un hook, per evitare il conflitto.
Perché questo accade
C'è un conflitto di sincronizzazione tra l'inizializzazione di Polylang e la configurazione del contenitore di servizi di Gato GraphQL.
Polylang imposta i filtri pll_model e pll_context durante il suo processo di inizializzazione. Poiché Gato GraphQL non è ancora inizializzato, non può recuperare i percorsi corretti degli endpoint dal database, al fine di determinare se la richiesta proviene da un endpoint GraphQL e sostituire il modello e il contesto con quelli corretti (PLL_Admin_Model e PLL_Admin rispettivamente).
Soluzione temporanea
Quando Polylang imposta i filtri pll_model e pll_context, Gato GraphQL assume i percorsi predefiniti per gli endpoint GraphQL.
Quindi, se si modifica il percorso di un endpoint pubblico tramite le Impostazioni del plugin, è necessario applicare la stessa modifica tramite un hook.
Consulta la guida Replicare gli aggiornamenti del percorso dell'endpoint GraphQL tramite hook per la soluzione.