In questa Pagina:
- Plugin necessari
- Cosa puoi fare con WPML GraphQL?
- Interrogazione delle informazioni sulla lingua e sulla traduzione
- Filtro della lingua
- Interrogare post specifici in diverse lingue
- Interrogare i dati delle lingue installate
- Usare WPML GraphQL con Gatsby e ACF
- Inizia con WPML GraphQL
- Hai bisogno di aiuto?
Plugin necessari
Per iniziare, installa e attiva i seguenti plugin:
- WPGraphQL
- WPML
- WPML String Translation
- WPML GraphQL
Per includere campi multilingue dal plugin ACF nello schema WPGraphQL, installa anche:
- Advanced Custom Fields Multilingual (ACFML)
- WPGraphQL per Advanced Custom Fields
Cosa puoi fare con WPML GraphQL?
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:
- Ottieni informazioni sulla lingua per qualsiasi contenuto interroghi
- Accedi alle traduzioni per post, tassonomie e commenti
- Filtra le tue interrogazioni per lingua
- Interroga post specifici in diverse lingue per ID o slug
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.
Interrogazione delle informazioni sulla lingua e sulla traduzione
Con WPML GraphQL, puoi usare i campi lingua e traduzione nelle tue interrogazioni:
- Il campo
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. - Il campo
languageCode
ottiene il codice lingua per post, termini di tassonomia, menu, voci di menu e commenti senza dettagli aggiuntivi sulla lingua. - Il campo
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"
}
]
}
}
]
}
]
}
}
}
Filtro della lingua
WPML GraphQL ti permette di usare il filtro lingua per:
- Filtrare post, termini di tassonomia, menu, voci di menu o commenti per una lingua specifica
- Recuperare contenuti in una lingua particolare impostando il filtro di conseguenza
- Ottenere tutti i contenuti, indipendentemente dalla lingua, impostando il valore del filtro su tutti
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"
}
]
}
}
]
}
}
}
Interrogare post specifici in diverse lingue
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/"
}
}
}
Interrogare i dati delle lingue installate
WPML GraphQL fornisce due query per accedere ai dati sulle lingue installate sul tuo sito:
- La query lingue recupera tutte le lingue registrate insieme ai dati rilevanti per ciascuna
- La query lingua predefinita recupera informazioni sulla lingua predefinita impostata 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/"
}
]
}
}
Usare WPML GraphQL con Gatsby e ACF
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
}
}
}
}
}
}
`;
Inizia con WPML GraphQL
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.
Hai bisogno di aiuto?
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.