บล็อก

⭐️ เปิดตัว v2.6 พร้อมส่วนขยาย MultilingualPress (สำหรับเว็บไซต์หลายภาษา)

Leonardo Losoviz
โดย Leonardo Losoviz ·

Gato GraphQL v2.6 ได้รับการเปิดตัวแล้ว พร้อมด้วยฟีเจอร์ใหม่หลายอย่าง ดูรายละเอียดการเปลี่ยนแปลงทั้งหมดได้ที่ release notes บน GitHub

ด้านล่างนี้คือการเพิ่มเติมที่สำคัญที่สุด

[PRO] เพิ่มการรวมระบบกับ MultilingualPress

Gato GraphQL PRO ตอนนี้มีการรวมระบบกับปลั๊กอิน MultilingualPress

ด้วยส่วนขยาย MultilingualPress ใหม่ GraphQL schema จะได้รับฟิลด์สำหรับดึงข้อมูลหลายภาษา

ตัวอย่างเช่น ตอนนี้คุณสามารถรัน queries นี้ได้:

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
}

ด้วยการเพิ่มเติมนี้ เราสามารถใช้ Gato GraphQL เพื่อแปลโพสต์อัตโนมัติสำหรับปลั๊กอิน MultilingualPress และบันทึกคำแปลเหล่านั้นไปยังไซต์ที่เกี่ยวข้องในเครือข่าย WordPress multisite

ดูวิดีโอสาธิต Automatically translating posts for MultilingualPress (on a WordPress multisite network) เพื่อดูวิธีการทำงาน:

[PRO] เพิ่มฟิลด์ _strRegexFindMatches

ฟิลด์ _strRegexFindMatches ได้รับการเพิ่มเข้าไปใน GraphQL schema (ภายใต้ส่วนขยาย PHP Functions via Schema)

ฟิลด์นี้ประมวลผล regular expression เพื่อดึงข้อมูลที่ตรงกันทั้งหมดจากสตริง ตัวอย่างเช่น การรัน queries นี้:

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"
  )
}

...จะให้ผลลัพธ์:

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

ด้วยการเพิ่มเติมนี้ เราสามารถใช้ Gato GraphQL เพื่อดึงสตริงว่างจากไฟล์ Poedit แปลเป็นภาษาใดก็ได้ และสร้างไฟล์ Poedit ที่เกี่ยวข้องสำหรับภาษานั้น

ดูวิดีโอสาธิต Translating all strings in a Poedit file for any language เพื่อดูวิธีการทำงาน:

เพิ่มฟิลด์ siteURL

เพิ่มฟิลด์ต่อไปนี้ใน GraphQL schema ผ่านโมดูล "Site":

  • Root.siteURL

ตัวอย่างเช่น การรัน queries ต่อไปนี้:

query {
  siteURL
}

...จะให้ผลลัพธ์:

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

เพิ่มฟิลด์สำหรับดึงข้อมูล multisite

ตอนนี้ GraphQL schema รองรับการดึงข้อมูลจากเครือข่าย WordPress multisite ผ่านโมดูล "Multisite" ใหม่

โมดูลนี้เพิ่มฟิลด์ต่อไปนี้ใน GraphQL schema:

  • Root.networkSites
  • Root.networkSiteCount

ฟิลด์ networkSites คืนค่าเป็น array ที่มีไซต์ทั้งหมดในเครือข่าย โดยแต่ละไซต์เป็นประเภท NetworkSite ใหม่ ซึ่งประกอบด้วยฟิลด์ต่อไปนี้:

  • id
  • name
  • url
  • locale
  • language

ฟิลด์เหล่านี้จะเปิดใช้งานเฉพาะเมื่อ multisite ถูกเปิดใช้งาน (กล่าวคือ เมื่อเมธอด is_multisite() คืนค่าเป็น true)

ตัวอย่างเช่น การรัน queries ต่อไปนี้:

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

อาจคืนค่า:

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

เพิ่ม persisted queries ที่กำหนดไว้ล่วงหน้า

Persisted queries ต่อไปนี้ได้รับการเพิ่มเข้าไปใน Gato GraphQL:

[PRO] เพิ่มกฎ automation

กฎ automation ต่อไปนี้ได้รับการเพิ่มเข้าไปใน Gato GraphQL PRO:

  • MultilingualPress: เมื่อเผยแพร่โพสต์ ให้แปลเป็นทุกภาษา (Gutenberg)
  • MultilingualPress: เมื่อเผยแพร่โพสต์ ให้แปลเป็นทุกภาษา (Classic editor)

สมัครรับจดหมายข่าวของเรา

ติดตามการอัปเดตทั้งหมดของ Gato GraphQL