⭐️ Lanzado v2.6 con nueva extensión MultilingualPress (para sitios multilingües)
Se ha lanzado Gato GraphQL v2.6, conteniendo varias nuevas características. Echa un vistazo a las notas de la release en GitHub para la lista completa de cambios.
A continuación están las adiciones más importantes.
[PRO] Añadida integración con MultilingualPress
Gato GraphQL PRO ahora tiene una integración con el plugin MultilingualPress.
Con la nueva extensión MultilingualPress, al esquema GraphQL se le proporcionan los campos para recuperar datos multilingües.
Por ejemplo, ahora puedes ejecutar esta consulta:
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 esta adición, podemos usar Gato GraphQL para traducir automáticamente entradas para el plugin MultilingualPress, y almacenar esas traducciones en los sitios correspondientes en la red WordPress multisite.
Echa un vistazo al vídeo de la demo Automatically translating posts for MultilingualPress (on a WordPress multisite network) para ver cómo funciona:
[PRO] Añadido campo _strRegexFindMatches
Se ha añadido el campo _strRegexFindMatches al esquema GraphQL (bajo la extensión PHP Functions via Schema).
Este campo ejecuta una expresión regular para extraer todas las coincidencias de una cadena. Por ejemplo, ejecutar esta consulta:
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"
)
}...producirá:
{
"data": {
"_strRegexFindMatches": [
[
"https:\/\/gatographql.com"
],
[
"gatographql.com"
]
]
}
}Con esta adición, podemos usar Gato GraphQL para extraer las cadenas vacías de un fichero Poedit, traducirlas a cualquier idioma, y crear el fichero Poedit correspondiente para ese idioma.
Echa un vistazo al vídeo de la demo Traducir todas las cadenas de un archivo Poedit a cualquier idioma para ver cómo funciona:
Añadido campo siteURL
Se ha añadido el siguiente campo al esquema GraphQL, vía el módulo "Site":
Root.siteURL
Por ejemplo, ejecutar la siguiente consulta:
query {
siteURL
}...producirá:
{
"data": {
"siteURL": "https://mysite.com"
}
}Añadidos campos para obtener datos del multisite
El esquema GraphQL ahora soporta obtener datos de una red WordPress multisite, proporcionados vía el nuevo módulo "Multisite".
Este módulo añade los siguientes campos al esquema GraphQL:
Root.networkSitesRoot.networkSiteCount
El campo networkSites devuelve un array con todos los sitios en la red, cada uno del nuevo tipo NetworkSite, que contiene los siguientes campos:
idnameurllocalelanguage
Estos campos solo se habilitan cuando multisite está habilitado (es decir, cuando el método is_multisite() devuelve true).
Por ejemplo, ejecutar la siguiente consulta:
query {
networkSiteCount
networkSites {
id
name
url
locale
language
}
}podría devolver:
{
"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"
}
]
}
}Añadidas persisted queries predefinidas
Se han añadido las siguientes persisted queries a Gato GraphQL:
- [PRO] Translate posts for MultilingualPress (Gutenberg)
- [PRO] Translate posts for MultilingualPress (Classic editor)
- [PRO] Translate Poedit file content
[PRO] Añadidas reglas de automatización
Se han añadido las siguientes reglas de automatización a Gato GraphQL PRO:
- MultilingualPress: Al publicar una entrada, traducirla a todos los idiomas (Gutenberg)
- MultilingualPress: Al publicar una entrada, traducirla a todos los idiomas (Editor clásico)