Blog

⭐️ Rilasciata la v2.6 con la nuova estensione MultilingualPress (per siti multilingue)

Leonardo Losoviz
Di Leonardo Losoviz ·

Gato GraphQL v2.6 è stato rilasciato, con diverse nuove funzionalità. Consulta le note di rilascio su GitHub per l'elenco completo delle modifiche.

Di seguito sono riportate le aggiunte più importanti.

[PRO] Aggiunta l'integrazione con MultilingualPress

Gato GraphQL PRO dispone ora di un'integrazione con il plugin MultilingualPress.

Con la nuova estensione MultilingualPress, lo schema GraphQL viene dotato dei campi per recuperare dati multilingue.

Ad esempio, ora puoi eseguire questa query:

query {
  posts {
    multilingualpressTranslationConnections {
      ...MultilingualPressConnectionData
    }
 
    categories {
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
    }
    
    tags {
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
    }
  }
 
  pages {
    multilingualpressTranslationConnections {
      ...MultilingualPressConnectionData
    }
  }
  
  customPosts(filter: { customPostTypes: "some-cpt" }) {
    __typename
    ...on GenericCustomPost {
      multilingualpressIsTranslatable
      multilingualpressTranslationConnections {
        ...MultilingualPressConnectionData
      }
      
      categories(taxonomy: "some-category") {
        __typename
        ...on GenericCategory {
          multilingualpressIsTranslatable
          multilingualpressTranslationConnections {
            ...MultilingualPressConnectionData
          }
        }
      }
      
      tags(taxonomy: "some-tag") {
        __typename
        ...on GenericTag {
          multilingualpressIsTranslatable
          multilingualpressTranslationConnections {
            ...MultilingualPressConnectionData
          }
        }
      }
    }
  }
}
 
fragment MultilingualPressConnectionData {
  siteID
  entityID
}

Con questa aggiunta, possiamo usare Gato GraphQL per tradurre automaticamente i post per il plugin MultilingualPress e memorizzare quelle traduzioni nei siti corrispondenti all'interno della rete multisito di WordPress.

Guarda il video dimostrativo Automatically translating posts for MultilingualPress (on a WordPress multisite network) per vedere come funziona:

[PRO] Aggiunto il campo _strRegexFindMatches

Il campo _strRegexFindMatches è stato aggiunto allo schema GraphQL (sotto l'estensione PHP Functions via Schema).

Questo campo esegue un'espressione regolare per estrarre tutte le corrispondenze da una stringa. Ad esempio, eseguendo questa query:

query {
  _strRegexFindMatches(
    regex: "/https?:\\/\\/([a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\\.[a-zA-Z]{2,})/",
    string: "In website https://gatographql.com there is more information"
  )
}

...produrrà:

{
  "data": {
    "_strRegexFindMatches": [
      [
        "https:\/\/gatographql.com"
      ],
      [
        "gatographql.com"
      ]
    ]
  }
}

Con questa aggiunta, possiamo usare Gato GraphQL per estrarre le stringhe vuote da un file Poedit, tradurle in qualsiasi lingua e creare il file Poedit corrispondente per quella lingua.

Guarda il video dimostrativo Translating all strings in a Poedit file for any language per vedere come funziona:

Aggiunto il campo siteURL

È stato aggiunto il seguente campo allo schema GraphQL, tramite il modulo "Site":

  • Root.siteURL

Ad esempio, eseguendo la seguente query:

query {
  siteURL
}

...produrrà:

{
  "data": {
    "siteURL": "https://mysite.com"
  }
}

Aggiunti campi per recuperare i dati del multisito

Lo schema GraphQL ora supporta il recupero di dati da una rete multisito di WordPress, fornito tramite il nuovo modulo "Multisite".

Questo modulo aggiunge i seguenti campi allo schema GraphQL:

  • Root.networkSites
  • Root.networkSiteCount

Il campo networkSites restituisce un array con tutti i siti della rete, ciascuno del nuovo tipo NetworkSite, che contiene i seguenti campi:

  • id
  • name
  • url
  • locale
  • language

Questi campi sono abilitati solo quando il multisito è abilitato (ovvero quando il metodo is_multisite() restituisce true).

Ad esempio, eseguendo la seguente query:

query {
  networkSiteCount
  networkSites {
    id
    name
    url
    locale
    language
  }
}

potrebbe restituire:

{
  "data": {
    "networkSiteCount": 3,
    "networkSites": [
     {
        "id": 1,
        "name": "Site in English",
        "url": "https://mymultisite.com",
        "locale": "en_US",
        "language": "en"
      },
     {
        "id": 2,
        "name": "Site in Spanish",
        "url": "https://es.mymultisite.com",
        "locale": "es_AR",
        "language": "es"
      },
     {
        "id": 3,
        "name": "Site in French",
        "url": "https://fr.mymultisite.com",
        "locale": "fr_FR",
        "language": "fr"
      }
    ]
  }
}

Aggiunte persisted queries predefinite

Le seguenti persisted queries sono state aggiunte a Gato GraphQL:

[PRO] Aggiunte regole di automazione

Le seguenti regole di automazione sono state aggiunte a Gato GraphQL PRO:

  • MultilingualPress: Quando si pubblica un post, tradurlo in tutte le lingue (Gutenberg)
  • MultilingualPress: Quando si pubblica un post, tradurlo in tutte le lingue (Editor classico)

Iscriviti alla nostra newsletter

Resta aggiornato su tutte le novità di Gato GraphQL.