Polylang com comportamento incorreto
Ao usar a extensão Polylang e notar os seguintes problemas ao buscar dados via GraphQL a partir de um endpoint público:
- O Polylang não detecta corretamente o idioma atual para as requisições GraphQL
- O conteúdo específico do idioma não é filtrado corretamente
- Você obtém conteúdo no idioma errado ou nenhum conteúdo
...e você realizou alguma das seguintes ações no Gato GraphQL:
- Atualizou o caminho do GraphQL Single Endpoint
- Atualizou o slug base dos Custom Endpoints ou das queries persistidas
- Desabilitou algum endpoint (desabilitando o módulo correspondente)
...então é necessário aplicar a mesma modificação via hook, para evitar o conflito.
Por que isso acontece
Há um conflito de sincronização entre a inicialização do Polylang e a configuração do contêiner de serviços do Gato GraphQL.
O Polylang define os filtros pll_model e pll_context durante seu processo de inicialização. Como o Gato GraphQL ainda não foi inicializado, ele não consegue recuperar os caminhos corretos dos endpoints do banco de dados para determinar se a requisição vem de um endpoint GraphQL e sobrescrever o modelo e o contexto com os corretos (PLL_Admin_Model e PLL_Admin, respectivamente).
Solução temporária
Quando o Polylang define os filtros pll_model e pll_context, o Gato GraphQL assume os caminhos padrão para os endpoints GraphQL.
Portanto, se você modificar o caminho de algum endpoint público nas Configurações do plugin, é necessário aplicar a mesma modificação via hook.
Leia o guia Replicando atualizações do caminho do endpoint GraphQL via hooks para a solução.