In questa pagina
Cosa puoi fare con WPML GraphQL?
Interrogazione delle informazioni sulla lingua e sulla traduzione
Interrogare post specifici in diverse lingue
Interrogare i dati delle lingue installate
In questa pagina
Cosa puoi fare con WPML GraphQL?
Interrogazione delle informazioni sulla lingua e sulla traduzione
Interrogare post specifici in diverse lingue
Interrogare i dati delle lingue installate
Al momento WPML GraphQL non è compatibile con WPGraphQL 2.0. Stiamo lavorando sodo per renderlo compatibile e ti faremo sapere appena lo sarà.
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 permetterti 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 ottenere un elenco di tutti i post sul tuo sito, completo di codici lingua, slug, URI e dettagli per le loro traduzioni.
Di seguito, useremo un sito di test multilingue per mostrarti come usare WPML GraphQL per interrogare contenuti e le loro traduzioni.
Con WPML GraphQL, puoi usare i campi lingua e traduzione nelle tue interrogazioni:
language
permette 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 dettagli aggiuntivi 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 un’interrogazione che recupera post insieme ai loro dettagli associati, inclusi lo slug del post, l’URI, il codice lingua, le categorie e qualsiasi traduzione esistente:
query Posts{
posts(where: {language: "en"}) {
nodes {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
translations {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
}
}
}
}
Eseguendo questa interrogazione si ottengono informazioni sulla lingua e sulla traduzione per ogni post, insieme agli elementi collegati come le categorie. Le connessioni seguono automaticamente la lingua dell’elemento di livello superiore (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 permette di usare il filtro lingua per:
WPML GraphQL supporta le connessioni, quindi quando filtri un elemento di livello superiore come un post per lingua, tutti gli elementi correlati, come categorie e tag, seguiranno automaticamente la stessa lingua. Questo rende le tue interrogazioni coerenti e accurate.
Ecco un esempio di un’interrogazione che recupera post in spagnolo, inclusi i loro 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 WPMLGraphQL, puoi anche interrogare singoli post in qualsiasi lingua per ID del post o slug.
Per esempio, se hai un post intitolato ¡Hola mundo! (la traduzione spagnola di Hello world!), con uno slug di hola-mundo e un ID post di 2, puoi usare 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 il titolo, lo slug e l’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 stai cercando di costruire 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/"
}
]
}
}
Gatsby ti permette di ottenere dati da WordPress, e con WPML GraphQL, puoi servire contenuti multilingue e dati specifici per lingua al tuo sito Gatsby.
Se stai usando WP GraphQL con il plugin ACF, WPML GraphQL e ACF Multilingual estendono questa funzionalità, permettendoti di interrogare i dati dei campi personalizzati in diverse lingue.
Per esempio, supponiamo che tu abbia un’installazione di Gatsby con il pacchetto aggiuntivo gatsby-source-graphql, e il tuo sito WordPress abbia WPML (con lo spagnolo come lingua secondaria) e ACF installati.
Puoi recuperare post multilingue con i loro titoli, codici lingua e campi ACF personalizzati in Gatsby usando una semplice query GraphQL.
export const doQuery = graphql`
{
wordpress {
posts(where: {language: "en"}) {
nodes {
title
language {
code
}
postfields{
subtitle
}
translations {
title
language {
code
}
postfields{
subtitle
}
}
}
}
}
}
`;
Per usare WPML GraphQL, hai bisogno di un piano WPML Multilingual CMS o WPML Multilingual Agency. Entrambi i piani forniscono accesso al plugin WPML e a una vasta gamma di componenti aggiuntivi, tutti inclusi senza costi aggiuntivi.
Vedi quale piano è migliore per il tuo sito.
Se hai problemi a usare WPML GraphQL, visita la nostra pagina Problemi Conosciuti e Soluzioni per suggerimenti sulla risoluzione dei problemi.
Hai ancora bisogno di aiuto? Invia un ticket di supporto.