En esta página
¿Qué puede hacer con WPML GraphQL?
Consultar información de idioma y traducción
Consultar entradas específicas en varios idiomas
Consulta de datos de los idiomas instalados
En esta página
¿Qué puede hacer con WPML GraphQL?
Consultar información de idioma y traducción
Consultar entradas específicas en varios idiomas
Consulta de datos de los idiomas instalados
Para empezar, instala y activa los siguientes plugins:
Para incluir campos multilingües del plugin ACF en el esquema de WPGraphQL, instale también:
WPML GraphQL se integra con WPGraphQL para permitirle consultar contenido multilingüe creado con WPML.
Desde GraphQL → GraphQL IDE, puede usar el Query Composer para:
Por ejemplo, como muestra la imagen siguiente, puede obtener fácilmente una lista de todas las entradas de su sitio, completa con sus códigos de idioma, slugs, URI y detalles de sus traducciones.
A continuación, utilizaremos un sitio de prueba multilingüe para mostrarle cómo usar WPML GraphQL para consultar contenido y sus traducciones.
Con WPML GraphQL, puede usar los campos language y translation en sus consultas:
language campo le permite recuperar detalles como el código de idioma, la URL de la bandera del país, el nombre nativo, el nombre traducido y la URL de la página de inicio para tipos de entrada, taxonomías, menús, elementos de menú y comentarios.languageCode campo obtiene el código de idioma para entradas, términos de taxonomía, menús, elementos de menú y comentarios sin detalles de idioma adicionales.translations campo recupera traducciones para tipos de entrada y términos de taxonomía.Cuando consulte comentarios, los campos language y languageCode coinciden con el idioma de la entrada a la que pertenecen.
Este es un ejemplo de una consulta que recupera entradas junto con sus detalles asociados, incluido el slug de la entrada, el URI, el código de idioma, las categorías y cualquier traducción que exista:
query Posts{
posts(where: {language: "en"}) {
nodes {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
translations {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
}
}
}
}
La ejecución de esta consulta devuelve información de idioma y traducción para cada entrada, junto con elementos conectados como categorías. Las conexiones siguen automáticamente el idioma del elemento de nivel superior (entradas en este 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"
}
]
}
}
]
}
]
}
}
}
WPML GraphQL le permite usar el filtro language para:
WPML GraphQL admite conexiones, por lo que cuando filtre un elemento de nivel superior como una entrada por idioma, todos los elementos relacionados, como categorías y etiquetas, seguirán automáticamente el mismo idioma. Esto hace que sus consultas sean coherentes y precisas.
Este es un ejemplo de una consulta que recupera entradas en español, incluidos sus slugs, URI y categorías conectadas:
query PostsES{
posts(where: {language: "es"}) {
nodes {
slug
uri
categories {
nodes {
name
}
}
}
}
}
Esto es lo que devuelve la consulta:
{
"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"
}
]
}
}
]
}
}
}
Con WPML GraphQL, también puede consultar entradas individuales en cualquier idioma por su ID de entrada o slug.
Por ejemplo, si tiene una entrada titulada ¡Hola mundo! (la traducción al español de Hello world!), con un slug de hola-mundo y un ID de entrada de 2, puede usar las siguientes consultas para recuperar la entrada:
query PostBySlug {
post(id: "hola-mundo", idType: SLUG) {
title
slug
uri
}
}
query PostById {
post(id: "2", idType: DATABASE_ID) {
title
slug
uri
}
}
Ambas consultas devolverán correctamente los datos de la entrada, incluidos el título, el slug y el URI, para la entrada ¡Hola mundo!:
{
"data": {
"post": {
"title": "¡Hola mundo!",
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/"
}
}
}
WPML GraphQL proporciona dos consultas para acceder a datos sobre los idiomas instalados en su sitio:
Estas consultas pueden ser útiles si desea crear funciones como un selector de idioma.
Por ejemplo, para obtener datos de todos los idiomas instalados, puede ejecutar la siguiente consulta:
query Languages {
languages {
code
country_flag_url
default_locale
native_name
translated_name
url
}
}
La consulta anterior produce el siguiente 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/"
}
]
}
}
Si está usando WPGraphQL con el plugin ACF, los complementos WPML GraphQL y ACFML (ACF Multilingual) amplían esta funcionalidad. Esto le permite consultar datos de campos personalizados en diferentes idiomas.
WPGraphQL con su extensión ACF expone las páginas de opciones de ACF como objetos raíz. Juntos, WPML GraphQL y los complementos ACFML añaden un parámetro de idioma a las consultas de páginas de opciones, esperando un código de idioma que coincida con uno de los idiomas activos en su sitio (por ejemplo, «de», «pt-pt»). Esto le permite consultar los datos en un idioma específico:
query NewQuery {
myOptionPage(language: "de") {
addressFieldGroup {
addressTitle
repeaterAddressDetails {
addressDetails
}
}
}
}
Para usar WPML GraphQL, necesita un plan WPML Multilingual CMS o WPML Multilingual Agency. Ambos planes proporcionan acceso al plugin WPML y a una amplia gama de complementos adicionales, todos incluidos sin coste adicional.
Vea qué plan es mejor para su sitio.
Si tiene problemas al usar WPML GraphQL, visite nuestra página de problemas conocidos y soluciones para obtener consejos de solución de problemas.
¿Aún necesita ayuda? Envíe un ticket de soporte.