Blog

⭐️ Lanzado v2.6 con nueva extensión MultilingualPress (para sitios multilingües)

Leonardo Losoviz
Por Leonardo Losoviz ·

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.networkSites
  • Root.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:

  • id
  • name
  • url
  • locale
  • language

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] 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)

Suscríbete a nuestra newsletter

Mantente al tanto de todas las novedades de Gato GraphQL.