Nesta página:
- Plugins necessários
- O Que Você Pode Fazer com WPML GraphQL?
- Consulta de informações sobre idiomas e traduções
- Filtragem de idiomas
- Consultando Postagens Específicas em Diferentes Idiomas
- Consulta de dados de idiomas instalados
- Usando WPML GraphQL com Gatsby e ACF
- Comece com WPML GraphQL
- Precisa de Ajuda?
Plugins necessários
Para começar, instale e ative os seguintes plug-ins:
- WPGraphQL
- WPML
- WPML String Translation
- WPML GraphQL
Para incluir campos multilíngues do plugin ACF no esquema WPGraphQL, instale também:
- Advanced Custom Fields Multilingual (ACFML)
- WPGraphQL para Advanced Custom Fields
O Que Você Pode Fazer com WPML GraphQL?
WPML GraphQL integra-se com WPGraphQL para permitir que você consulte conteúdo multilíngue criado com WPML.
De GraphQL → GraphQL IDE, você pode usar o Query Composer para:
- Obter informações de idioma para qualquer conteúdo que você consultar
- Acessar traduções para postagens, taxonomias e comentários
- Filtrar suas consultas por idioma
- Consultar postagens específicas em diferentes idiomas por seu ID ou slug
Por exemplo, como mostra a imagem abaixo, você pode facilmente obter uma lista de todas as postagens em seu site, completa 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 WPML GraphQL para consultar conteúdo e suas traduções.
Consulta de informações sobre idiomas e traduções
Com WPML GraphQL, você pode usar os campos idioma e tradução em suas consultas:
- O campo
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 postagens, taxonomias, menus, itens de menu e comentários. - O campo
languageCode
recupera o código do idioma para postagens, termos de taxonomia, menus, itens de menu e comentários sem detalhes adicionais de idioma. - O campo
translations
recupera traduções para tipos de postagens e termos de taxonomia.
Quando você consulta comentários, os campos language
e languageCode
correspondem ao idioma da postagem a que pertencem.
Aqui está um exemplo de uma consulta que recupera postagens junto com seus detalhes associados, incluindo o slug da postagem, 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
}
}
}
}
}
}
Executar esta consulta retorna informações de idioma e tradução para cada postagem, juntamente com itens conectados como categorias. As conexões seguem automaticamente o idioma do item de nível superior (postagens 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"
}
]
}
}
]
}
]
}
}
}
Filtragem de idiomas
WPML GraphQL permite que você use o filtro idioma para:
- Filtrar postagens, termos de taxonomia, menus, itens de menu ou comentários por um idioma específico
- Recuperar conteúdo em um idioma específico configurando o filtro adequadamente
- Obter todo o conteúdo, independentemente do idioma, configurando o valor do filtro para todos
WPML GraphQL suporta conexões, então quando você filtra um item de nível superior como uma postagem 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 postagens 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"
}
]
}
}
]
}
}
}
Consultando Postagens Específicas em Diferentes Idiomas
Com WPMLGraphQL, você também pode consultar postagens individuais em qualquer idioma por seu ID de postagem ou slug.
Por exemplo, se você tiver uma postagem intitulada ¡Hola mundo! (a tradução em espanhol de Hello world!), com um slug de hola-mundo e um ID de postagem de 2, você pode usar as seguintes consultas para recuperar a postagem:
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 da postagem, incluindo o título, o slug e o URI, para a postagem ¡Hola mundo!:
{
"data": {
"post": {
"title": "¡Hola mundo!",
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/"
}
}
}
Consulta de dados de idiomas instalados
WPML GraphQL fornece duas consultas para acessar dados sobre os idiomas instalados em seu site:
- A consulta languages recupera todos os idiomas registrados juntamente com os dados relevantes para cada um
- A consulta defaultLanguage recupera informações sobre o idioma padrão definido em seu site
Essas consultas podem ser úteis se você estiver procurando construir 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/"
}
]
}
}
Usando WPML GraphQL com Gatsby e ACF
Gatsby permite que você obtenha dados de WordPress, e com WPML GraphQL, você pode servir conteúdo multilíngue e dados específicos de idioma para seu site Gatsby.
Se você estiver usando WP GraphQL com o plugin ACF, WPML GraphQL e ACF Multilingual estendem essa funcionalidade, permitindo que você consulte dados de campos personalizados em diferentes idiomas.
Por exemplo, digamos que você tenha uma instalação Gatsby com o pacote de complemento gatsby-source-graphql, e seu site WordPress tenha WPML (com o espanhol como idioma secundário) e ACF instalados.
Você pode recuperar postagens multilíngues com seus títulos, códigos de idioma e campos ACF personalizados no Gatsby usando uma simples consulta GraphQL.
export const doQuery = graphql`
{
wordpress {
posts(where: {language: "en"}) {
nodes {
title
language {
code
}
postfields{
subtitle
}
translations {
title
language {
code
}
postfields{
subtitle
}
}
}
}
}
}
`;
Comece com WPML GraphQL
Para usar WPML GraphQL, você precisa de um plano WPML Multilingual CMS ou WPML Multilingual Agency. Ambos os planos fornecem acesso ao plugin WPML e uma ampla gama de complementos adicionais, todos incluídos sem custo extra.
Veja qual plano é melhor para o seu site.
Precisa de Ajuda?
Se você tiver problemas ao usar WPML GraphQL, visite nossa página de Problemas Conhecidos e Soluções para obter dicas de solução de problemas.
Ainda precisa de ajuda? Envie um ticket de suporte.