Vai al contenuto Vai alla barra laterale

Home » Documentazione di WPML » Progetti correlati » WPML GraphQL – Aggiungi funzionalità multilingue allo schema WPGraphQL

WPML GraphQL – Aggiungi funzionalità multilingue allo schema WPGraphQL

WPML GraphQL ti consente di interrogare, filtrare e recuperare contenuti specifici per lingua e traduzioni dallo schema WPGraphQL.

Funzionalità principali

Filtra i contenuti per lingua, inclusi post, tassonomie, commenti, menu e voci di menu

Estendi WPGraphQL con campi lingua per recuperare dati specifici dal plugin WPML

Interroga i dati in tutte le lingue installate o concentrati su lingue specifiche

Plugin richiesti

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:

Cosa puoi fare con WPML GraphQL?

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:

  • Ottieni informazioni sulla lingua per qualsiasi contenuto che interroghi
  • Accedi alle traduzioni di post, tassonomie e commenti
  • Filtra le tue interrogazioni per lingua
  • Interroga post specifici in diverse lingue tramite ID o slug

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.

Utilizzo dei campi lingua nel Query Composer per recuperare post in tutte le lingue

Di seguito, useremo un sito di test multilingue per mostrarti come utilizzare WPML GraphQL per interrogare contenuti e relative traduzioni.

Interrogare informazioni su lingua e traduzione

Con WPML GraphQL, puoi utilizzare i campi language e translation nelle tue query:

  • Il campo 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.
  • Il campo languageCode ottiene il codice lingua per post, termini di tassonomia, menu, voci di menu e commenti senza ulteriori dettagli 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 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"
  }
  ]
  }
  }
  ]
  }
  ]
  }
  }
}

Filtro della lingua

WPML GraphQL ti consente di utilizzare il filtro language 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 all

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"
  }
  ]
  }
  }
  ]
  }
  }
}

Interrogare post specifici in diverse lingue

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/"
  }
  }
}

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 defaultLanguage recupera informazioni sulla lingua predefinita impostata 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/"
  }
  ]
  }
}

Usare WPML GraphQL con ACF

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
  }
  }
  }
}

Inizia con WPML GraphQL

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.

Hai bisogno di aiuto?

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.

Aggiornato
Maggio 6, 2026