Nesta página
O que você pode fazer com o WPML GraphQL?
Consultando informações de idioma e tradução
Consultando posts específicos em vários idiomas
Consulta de dados de idiomas instalados
Nesta página
O que você pode fazer com o WPML GraphQL?
Consultando informações de idioma e tradução
Consultando posts específicos em vários idiomas
Consulta de dados de idiomas instalados
Para começar, instale e ative os seguintes plugins:
Para incluir campos multilíngues do plugin ACF no esquema WPGraphQL, instale também:
O WPML GraphQL integra-se ao WPGraphQL para permitir que você consulte conteúdo multilíngue criado com o WPML.
De GraphQL → GraphQL IDE, você pode usar o Query Composer para:
Por exemplo, como mostra a imagem abaixo, você pode facilmente obter uma lista de todos os posts em seu site, com seus códigos de idioma, Slugs, URIs e detalhes de suas traduções.
Abaixo, usaremos um site de teste multilíngue para mostrar como usar o WPML GraphQL para consultar conteúdo e suas traduções.
Com o WPML GraphQL, você pode usar os campos language e translation em suas consultas:
language permite recuperar detalhes como o código do idioma, URL da bandeira do país, nome nativo, nome traduzido e URL da página inicial para tipos de post, taxonomias, menus, itens de menu e comentários.languageCode obtém o código do idioma para posts, termos de taxonomia, menus, itens de menu e comentários sem detalhes adicionais de idioma.translations recupera traduções para tipos de post e termos de taxonomia.Ao consultar comentários, os campos language e languageCode correspondem ao idioma do post ao qual pertencem.
Aqui está um exemplo de uma consulta que recupera posts junto com seus detalhes associados, incluindo o Slug do post, URI, código do idioma, categorias e quaisquer traduções existentes:
query Posts{
posts(where: {language: "en"}) {
nodes {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
translations {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
}
}
}
}
A execução desta consulta retorna informações de idioma e tradução para cada post, junto com itens conectados, como categorias. As conexões seguem automaticamente o idioma do item de nível superior (posts, neste caso):
{
"data": {
"posts": {
"nodes": [
{
"slug": "bye-world",
"uri": "/2023/05/18/bye-world/",
"language": {
"code": "en"
},
"categories": {
"nodes": [
{
"name": "End of the day"
},
{
"name": "Greetings"
}
]
},
"translations": [
{
"slug": "adios-mundo",
"uri": "/es/2023/05/18/adios-mundo/",
"language": {
"code": "es"
},
"categories": {
"nodes": [
{
"name": "Fin del día"
},
{
"name": "Saludos"
}
]
}
},
{
"slug": "tchau-mundo",
"uri": "/pt-pt/2023/05/18/tchau-mundo/",
"language": {
"code": "pt-pt"
},
"categories": {
"nodes": [
{
"name": "Fim do dia"
},
{
"name": "Saudações"
}
]
}
}
]
},
{
"slug": "hello-world",
"uri": "/2018/07/05/hello-world/",
"language": {
"code": "en"
},
"categories": {
"nodes": [
{
"name": "Greetings"
},
{
"name": "Start of the day"
}
]
},
"translations": [
{
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/",
"language": {
"code": "es"
},
"categories": {
"nodes": [
{
"name": "Inicio del día"
},
{
"name": "Saludos"
}
]
}
},
{
"slug": "ola-mundo",
"uri": "/pt-pt/2018/07/05/ola-mundo/",
"language": {
"code": "pt-pt"
},
"categories": {
"nodes": [
{
"name": "Começo do dia"
},
{
"name": "Saudações"
}
]
}
}
]
}
]
}
}
}
O WPML GraphQL permite que você use o filtro language para:
O WPML GraphQL suporta conexões, portanto, quando você filtra um item de nível superior, como um post, por idioma, todos os itens relacionados, como categorias e tags, seguirão automaticamente o mesmo idioma. Isso torna suas consultas consistentes e precisas.
Aqui está um exemplo de uma consulta que recupera posts em espanhol, incluindo seus Slugs, URIs e categorias conectadas:
query PostsES{
posts(where: {language: "es"}) {
nodes {
slug
uri
categories {
nodes {
name
}
}
}
}
}
Aqui está o que a consulta retorna:
{
"data": {
"posts": {
"nodes": [
{
"slug": "adios-mundo",
"uri": "/es/2023/05/18/adios-mundo/",
"categories": {
"nodes": [
{
"name": "Fin del día"
},
{
"name": "Saludos"
}
]
}
},
{
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/",
"categories": {
"nodes": [
{
"name": "Inicio del día"
},
{
"name": "Saludos"
}
]
}
}
]
}
}
}
Com o WPML GraphQL, você também pode consultar posts individuais em qualquer idioma por seu ID de post ou Slug.
Por exemplo, se você tiver um post intitulado ¡Hola mundo! (a tradução em espanhol de Hello world!), com um Slug hola-mundo e um ID de post 2, você pode usar as seguintes consultas para recuperar o post:
query PostBySlug {
post(id: "hola-mundo", idType: SLUG) {
title
slug
uri
}
}
query PostById {
post(id: "2", idType: DATABASE_ID) {
title
slug
uri
}
}
Ambas as consultas retornarão corretamente os dados do post, incluindo o título, Slug e URI, para o post ¡Hola mundo!:
{
"data": {
"post": {
"title": "¡Hola mundo!",
"slug": "hola-mundo!",
"uri": "/es/2018/07/05/hola-mundo/"
}
}
}
O WPML GraphQL fornece duas consultas para acessar dados sobre os idiomas instalados em seu site:
Essas consultas podem ser úteis se você estiver procurando criar recursos como um seletor de idiomas.
Por exemplo, para obter dados de todos os idiomas instalados, você pode executar a seguinte consulta:
query Languages {
languages {
code
country_flag_url
default_locale
native_name
translated_name
url
}
}
A consulta acima produz o seguinte resultado:
{
"data": {
"languages": [
{
"code": "en",
"country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/en.svg",
"default_locale": "en_US",
"native_name": "English",
"translated_name": "English",
"url": "http://site.com"
},
{
"code": "es",
"country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/es.svg",
"default_locale": "es_ES",
"native_name": "Español",
"translated_name": "Spanish",
"url": "http://site.com/es/"
},
{
"code": "it",
"country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/it.svg",
"default_locale": "it_IT",
"native_name": "Italiano",
"translated_name": "Italian",
"url": "http://site.com/it/"
}
]
}
}
Se você estiver usando o WPGraphQL com o plugin ACF, os complementos WPML GraphQL e ACFML (ACF Multilingual) estendem essa funcionalidade. Isso permite que você consulte dados de campos personalizados em diferentes idiomas.
O WPGraphQL com sua extensão ACF expõe as Páginas de Opções do ACF como objetos raiz. Juntos, o WPML GraphQL e os complementos ACFML adicionam um parâmetro de idioma às consultas da Página de Opções, esperando um código de idioma correspondente a um dos idiomas ativos em seu site (por exemplo, “de”, “pt-pt”). Isso permite que você consulte os dados em um idioma específico:
query NewQuery {
myOptionPage(language: "de") {
addressFieldGroup {
addressTitle
repeaterAddressDetails {
addressDetails
}
}
}
}
Para usar o WPML GraphQL, você precisa de um plano WPML Multilingual CMS ou WPML Multilingual Agency. Ambos os planos oferecem acesso ao plugin WPML e a uma ampla gama de complementos adicionais, todos incluídos sem custo extra.
Veja qual plano é melhor para o seu site.
Se você tiver problemas ao usar o WPML GraphQL, visite nossa página de Problemas Conhecidos e Soluções para dicas de solução de problemas.
Ainda precisa de ajuda? Envie um ticket de suporte.