In questa pagina
Cosa puoi fare con WPML GraphQL?
Interrogare informazioni su lingua e traduzione
Interrogare post specifici in diverse lingue
Interrogare i dati delle lingue installate
In questa pagina
Cosa puoi fare con WPML GraphQL?
Interrogare informazioni su lingua e traduzione
Interrogare post specifici in diverse lingue
Interrogare i dati delle lingue installate
Per iniziare, installa e attiva i seguenti plugin:
Per includere campi multilingue dal plugin ACF nello schema WPGraphQL, installa anche:
WPML GraphQL si integra con WPGraphQL per consentirti di interrogare contenuti multilingue creati con WPML.
Da GraphQL → GraphQL IDE, puoi usare il Query Composer per:
Ad esempio, come mostra l’immagine qui sotto, puoi facilmente recuperare un elenco di tutti i post sul tuo sito, completi di codici lingua, slug, URI e dettagli delle loro traduzioni.
Di seguito, useremo un sito di test multilingue per mostrarti come utilizzare WPML GraphQL per interrogare contenuti e relative traduzioni.
Con WPML GraphQL, puoi utilizzare i campi language e translation nelle tue query:
language ti consente di recuperare dettagli come il codice lingua, l’URL della bandiera del paese, il nome nativo, il nome tradotto e l’URL della homepage per tipi di post, tassonomie, menu, voci di menu e commenti.languageCode ottiene il codice lingua per post, termini di tassonomia, menu, voci di menu e commenti senza ulteriori dettagli sulla lingua.translations recupera le traduzioni per tipi di post e termini di tassonomia.Quando interroghi i commenti, i campi language e languageCode corrispondono alla lingua del post a cui appartengono.
Ecco un esempio di query che recupera i post insieme ai dettagli associati, inclusi slug del post, URI, codice lingua, categorie ed eventuali traduzioni esistenti:
query Posts{
posts(where: {language: "en"}) {
nodes {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
translations {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
}
}
}
}
L’esecuzione di questa query restituisce informazioni su lingua e traduzione per ogni post, insieme agli elementi collegati come le categorie. Le connessioni seguono automaticamente la lingua dell’elemento di primo livello (in questo caso i post):
{
"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 ti consente di utilizzare il filtro language per:
WPML GraphQL supporta le connessioni, quindi quando filtri un elemento di primo livello come un post per lingua, tutti gli elementi correlati, come categorie e tag, seguiranno automaticamente la stessa lingua. Questo rende le tue query coerenti e precise.
Ecco un esempio di query che recupera i post in spagnolo, inclusi slug, URI e categorie collegate:
query PostsES{
posts(where: {language: "es"}) {
nodes {
slug
uri
categories {
nodes {
name
}
}
}
}
}
Ecco cosa restituisce l’interrogazione:
{
"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, puoi anche interrogare singoli post in qualsiasi lingua tramite ID del post o slug.
Ad esempio, se hai un post intitolato ¡Hola mundo! (la traduzione spagnola di Hello world!), con uno slug hola-mundo e un ID post 2, puoi utilizzare le seguenti query per recuperare il post:
query PostBySlug {
post(id: "hola-mundo", idType: SLUG) {
title
slug
uri
}
}
query PostById {
post(id: "2", idType: DATABASE_ID) {
title
slug
uri
}
}
Entrambe le query restituiranno correttamente i dati del post, inclusi titolo, slug e URI, per il post ¡Hola mundo!:
{
"data": {
"post": {
"title": "¡Hola mundo!",
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/"
}
}
}
WPML GraphQL fornisce due query per accedere ai dati sulle lingue installate sul tuo sito:
Queste query possono essere utili se desideri creare funzionalità come un selettore di lingua.
Per esempio, per ottenere dati su tutte le lingue installate, puoi eseguire la seguente query:
query Languages {
languages {
code
country_flag_url
default_locale
native_name
translated_name
url
}
}
La query precedente produce il seguente risultato:
{
"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 utilizzi WPGraphQL con il plugin ACF, gli addon WPML GraphQL e ACFML (ACF Multilingual) estendono questa funzionalità. Questo ti consente di interrogare i dati dei campi personalizzati in diverse lingue.
WPGraphQL con la sua estensione ACF espone le pagine delle opzioni ACF come oggetti radice. Insieme, WPML GraphQL e gli addon ACFML aggiungono un parametro lingua alle query delle pagine delle opzioni, richiedendo un codice lingua corrispondente a una delle lingue attive sul tuo sito (ad es. “de”, “pt-pt”). Questo ti consente di interrogare i dati in una lingua specifica:
query NewQuery {
myOptionPage(language: "de") {
addressFieldGroup {
addressTitle
repeaterAddressDetails {
addressDetails
}
}
}
}
Per utilizzare WPML GraphQL, hai bisogno di un piano WPML Multilingual CMS o WPML Multilingual Agency. Entrambi i piani forniscono accesso al plugin WPML e a un’ampia gamma di addon aggiuntivi, tutti inclusi senza costi extra.
Scopri quale piano è più adatto al tuo sito.
Se hai problemi nell’utilizzo di WPML GraphQL, visita la nostra pagina Problemi noti e soluzioni per suggerimenti sulla risoluzione dei problemi.
Hai ancora bisogno di aiuto? Invia un ticket di supporto.