Blog

⭐️ Wydana wersja v2.6 z nowym rozszerzeniem MultilingualPress (dla wielojęzycznych stron)

Leonardo Losoviz
Autor: Leonardo Losoviz ·

Gato GraphQL v2.6 zostało wydane, wprowadzając wiele nowych funkcji. Zapoznaj się z informacjami o wydaniu na GitHub, aby zobaczyć pełną listę zmian.

Poniżej przedstawiono najważniejsze dodatki.

[PRO] Dodana integracja z MultilingualPress

Gato GraphQL PRO posiada teraz integrację z wtyczką MultilingualPress.

Dzięki nowemu rozszerzeniu MultilingualPress, schema GraphQL otrzymuje pola umożliwiające pobieranie danych wielojęzycznych.

Na przykład można teraz wykonać takie 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
}

Dzięki temu dodatkowi możemy używać Gato GraphQL do automatycznego tłumaczenia wpisów dla wtyczki MultilingualPress i przechowywania tych tłumaczeń w odpowiednich witrynach w sieci multisite WordPress.

Obejrzyj film demonstracyjny Automatically translating posts for MultilingualPress (on a WordPress multisite network), aby zobaczyć jak to działa:

[PRO] Dodane pole _strRegexFindMatches

Pole _strRegexFindMatches zostało dodane do schematu GraphQL (w rozszerzeniu PHP Functions via Schema).

To pole wykonuje wyrażenie regularne w celu wyodrębnienia wszystkich dopasowań z ciągu znaków. Na przykład wykonanie tego 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"
  )
}

...spowoduje:

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

Dzięki temu dodatkowi możemy używać Gato GraphQL do wyodrębniania pustych ciągów z pliku Poedit, tłumaczenia ich na dowolny język i tworzenia odpowiedniego pliku Poedit dla tego języka.

Obejrzyj film demonstracyjny Translating all strings in a Poedit file for any language, aby zobaczyć jak to działa:

Dodane pole siteURL

Do schematu GraphQL dodano następujące pole za pośrednictwem modułu "Site":

  • Root.siteURL

Na przykład wykonanie następującego query:

query {
  siteURL
}

...spowoduje:

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

Dodane pola do pobierania danych z multisite

Schema GraphQL obsługuje teraz pobieranie danych z sieci multisite WordPress, udostępniane przez nowy moduł "Multisite".

Ten moduł dodaje do schematu GraphQL następujące pola:

  • Root.networkSites
  • Root.networkSiteCount

Pole networkSites zwraca tablicę ze wszystkimi witrynami w sieci, każda z nowego typu NetworkSite, który zawiera następujące pola:

  • id
  • name
  • url
  • locale
  • language

Te pola są dostępne tylko wtedy, gdy multisite jest włączony (czyli gdy metoda is_multisite() zwraca true).

Na przykład wykonanie następującego query:

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

może zwrócić:

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

Dodane predefiniowane zapytania persistowane

Do Gato GraphQL dodano następujące zapytania persistowane:

[PRO] Dodane reguły automatyzacji

Do Gato GraphQL PRO dodano następujące reguły automatyzacji:

  • MultilingualPress: Przy publikowaniu wpisu, przetłumacz go na wszystkie języki (Gutenberg)
  • MultilingualPress: Przy publikowaniu wpisu, przetłumacz go na wszystkie języki (Edytor klasyczny)

Zapisz się do naszego newslettera

Bądź na bieżąco ze wszystkimi aktualizacjami Gato GraphQL.