Blog

⭐️ Lançada a v2.6 com a nova extensão MultilingualPress (para sites multilinguais)

Leonardo Losoviz
Por Leonardo Losoviz ·

Gato GraphQL v2.6 foi lançado, trazendo diversas novas funcionalidades. Consulte as notas de lançamento no GitHub para a lista completa de alterações.

Abaixo estão as adições mais importantes.

[PRO] Adicionada integração com MultilingualPress

Gato GraphQL PRO agora possui uma integração com o plugin MultilingualPress.

Com a nova extensão MultilingualPress, o schema GraphQL recebe os campos para recuperar dados multilinguais.

Por exemplo, agora você pode executar esta 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
}

Com essa adição, podemos usar o Gato GraphQL para traduzir posts automaticamente para o plugin MultilingualPress e armazenar essas traduções nos sites correspondentes na rede multisite do WordPress.

Assista ao vídeo demonstrativo Automatically translating posts for MultilingualPress (on a WordPress multisite network) para ver como funciona:

[PRO] Adicionado o campo _strRegexFindMatches

O campo _strRegexFindMatches foi adicionado ao schema GraphQL (na extensão PHP Functions via Schema).

Este campo executa uma expressão regular para extrair todas as correspondências de uma string. Por exemplo, executando esta 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"
  )
}

...irá produzir:

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

Com essa adição, podemos usar o Gato GraphQL para extrair as strings vazias de um arquivo Poedit, traduzi-las para qualquer idioma e criar o arquivo Poedit correspondente para aquele idioma.

Assista ao vídeo demonstrativo Translating all strings in a Poedit file for any language para ver como funciona:

Adicionado o campo siteURL

O seguinte campo foi adicionado ao schema GraphQL, por meio do módulo "Site":

  • Root.siteURL

Por exemplo, executando a seguinte query:

query {
  siteURL
}

...irá produzir:

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

Adicionados campos para buscar dados do multisite

O schema GraphQL agora suporta a busca de dados de uma rede multisite do WordPress, fornecida pelo novo módulo "Multisite".

Este módulo adiciona os seguintes campos ao schema GraphQL:

  • Root.networkSites
  • Root.networkSiteCount

O campo networkSites retorna um array com todos os sites da rede, cada um do novo tipo NetworkSite, que contém os seguintes campos:

  • id
  • name
  • url
  • locale
  • language

Esses campos só são habilitados quando o multisite está ativo (ou seja, quando o método is_multisite() retorna true).

Por exemplo, executando a seguinte query:

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

pode retornar:

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

Adicionadas queries persistidas predefinidas

As seguintes queries persistidas foram adicionadas ao Gato GraphQL:

[PRO] Adicionadas regras de automação

As seguintes regras de automação foram adicionadas ao Gato GraphQL PRO:

  • MultilingualPress: Ao publicar um post, traduzi-lo para todos os idiomas (Gutenberg)
  • MultilingualPress: Ao publicar um post, traduzi-lo para todos os idiomas (Editor clássico)

Assine nossa newsletter

Fique por dentro de todas as atualizações do Gato GraphQL.