ในหน้านี้
คุณสามารถทำอะไรกับ WPML GraphQL ได้บ้าง?
การสืบค้นเรื่องเฉพาะในภาษาต่างๆ
การสืบค้นข้อมูลจากภาษาที่ติดตั้ง
ในหน้านี้
คุณสามารถทำอะไรกับ WPML GraphQL ได้บ้าง?
การสืบค้นเรื่องเฉพาะในภาษาต่างๆ
การสืบค้นข้อมูลจากภาษาที่ติดตั้ง
เพื่อเริ่มต้น ติดตั้งและเปิดใช้งานปลั๊กอินต่อไปนี้:
หากต้องการรวมฟิลด์หลายภาษาจากปลั๊กอิน ACF ใน WPGraphQL schema โปรดติดตั้งสิ่งต่อไปนี้ด้วย:
WPML GraphQL ทำงานร่วมกับ WPGraphQL เพื่อให้คุณสามารถสืบค้นเนื้อหาหลายภาษาที่สร้างด้วย WPML ได้
จาก GraphQL → GraphQL IDE คุณสามารถใช้ Query Composer เพื่อ:
ตัวอย่างเช่น ดังที่แสดงในภาพด้านล่าง คุณสามารถดึงรายการเรื่องทั้งหมดบนเว็บไซต์ของคุณได้อย่างง่ายดาย พร้อมด้วยรหัสภาษา สลัก URI และรายละเอียดสำหรับคำแปลของเรื่องเหล่านั้น
ด้านล่างนี้ เราจะใช้ไซต์ทดสอบแบบหลายภาษาเพื่อแสดงวิธีใช้ WPML GraphQL ในการสืบค้นเนื้อหาและคำแปล
ด้วย WPML GraphQL คุณสามารถใช้ฟิลด์ language และ translation ในการสืบค้นของคุณได้:
language ช่วยให้คุณสามารถดึงรายละเอียดต่างๆ เช่น รหัสภาษา URL ของรูปธงชาติ ชื่อภาษาท้องถิ่น ชื่อภาษาที่แปลแล้ว และ URL ของหน้าแรกสำหรับประเภทเนื้อหา อนุกรมวิธาน เมนู รายการเมนู และความคิดเห็นlanguageCode จะรับรหัสภาษาสำหรับเรื่อง รายการอนุกรมวิธาน เมนู รายการเมนู และความคิดเห็น โดยไม่มีรายละเอียดภาษาเพิ่มเติมtranslations จะดึงข้อมูลคำแปลสำหรับประเภทเนื้อหาและรายการอนุกรมวิธานเมื่อคุณสืบค้นความคิดเห็น ฟิลด์ language และ languageCode จะตรงกับภาษาของเรื่องที่ความคิดเห็นนั้นสังกัดอยู่
นี่คือตัวอย่างของการสืบค้นที่ดึงข้อมูลเรื่องพร้อมกับรายละเอียดที่เกี่ยวข้อง รวมถึงสลักของเรื่อง URI รหัสภาษา หมวดหมู่ และคำแปลที่มีอยู่:
query Posts{
posts(where: {language: "en"}) {
nodes {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
translations {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
}
}
}
}
การรันการสืบค้นนี้จะส่งคืนข้อมูลภาษาและคำแปลสำหรับแต่ละเรื่อง พร้อมกับรายการที่เชื่อมต่อกัน เช่น หมวดหมู่ การเชื่อมต่อจะตามภาษาของรายการระดับบนสุดโดยอัตโนมัติ (ในกรณีนี้คือเรื่อง):
{
"data": {
"posts": {
"nodes": [
{
"slug": "bye-world",
"uri": "/2023/05/18/bye-world/",
"language": {
"code": "en"
},
"categories": {
"nodes": [
{
"name": "End of the day"
},
{
"name": "Greetings"
}
]
},
"translations": [
{
"slug": "adios-mundo",
"uri": "/es/2023/05/18/adios-mundo/",
"language": {
"code": "es"
},
"categories": {
"nodes": [
{
"name": "Fin del día"
},
{
"name": "Saludos"
}
]
}
},
{
"slug": "tchau-mundo",
"uri": "/pt-pt/2023/05/18/tchau-mundo/",
"language": {
"code": "pt-pt"
},
"categories": {
"nodes": [
{
"name": "Fim do dia"
},
{
"name": "Saudações"
}
]
}
}
]
},
{
"slug": "hello-world",
"uri": "/2018/07/05/hello-world/",
"language": {
"code": "en"
},
"categories": {
"nodes": [
{
"name": "Greetings"
},
{
"name": "Start of the day"
}
]
},
"translations": [
{
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/",
"language": {
"code": "es"
},
"categories": {
"nodes": [
{
"name": "Inicio del día"
},
{
"name": "Saludos"
}
]
}
},
{
"slug": "ola-mundo",
"uri": "/pt-pt/2018/07/05/ola-mundo/",
"language": {
"code": "pt-pt"
},
"categories": {
"nodes": [
{
"name": "Começo do dia"
},
{
"name": "Saudações"
}
]
}
}
]
}
]
}
}
}
WPML GraphQL ช่วยให้คุณใช้ตัวกรอง language เพื่อ:
WPML GraphQL รองรับการเชื่อมต่อ ดังนั้นเมื่อคุณกรองรายการระดับบนสุด เช่น เรื่องตามภาษา รายการที่เกี่ยวข้องทั้งหมด เช่น หมวดหมู่และแท็ก จะตามภาษานั้นโดยอัตโนมัติ ซึ่งจะทำให้การสืบค้นของคุณมีความสอดคล้องและแม่นยำ
นี่คือตัวอย่างของการสืบค้นที่ดึงข้อมูลเรื่องในภาษาสเปน รวมถึงสลัก URI และหมวดหมู่ที่เชื่อมต่อกัน:
query PostsES{
posts(where: {language: "es"}) {
nodes {
slug
uri
categories {
nodes {
name
}
}
}
}
}
นี่คือสิ่งที่แบบสอบถามส่งคืน:
{
"data": {
"posts": {
"nodes": [
{
"slug": "adios-mundo",
"uri": "/es/2023/05/18/adios-mundo/",
"categories": {
"nodes": [
{
"name": "Fin del día"
},
{
"name": "Saludos"
}
]
}
},
{
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/",
"categories": {
"nodes": [
{
"name": "Inicio del día"
},
{
"name": "Saludos"
}
]
}
}
]
}
}
}
ด้วย WPML GraphQL คุณยังสามารถสืบค้นเรื่องแต่ละเรื่องในภาษาใดก็ได้ด้วย ID ของเรื่องหรือสลัก
ตัวอย่างเช่น หากคุณมีเรื่องชื่อ ¡Hola mundo! (คำแปลภาษาสเปนของ Hello world!) โดยมีสลักคือ hola-mundo และ ID ของเรื่องคือ 2 คุณสามารถใช้การสืบค้นต่อไปนี้เพื่อดึงข้อมูลเรื่องดังกล่าว:
query PostBySlug {
post(id: "hola-mundo", idType: SLUG) {
title
slug
uri
}
}
query PostById {
post(id: "2", idType: DATABASE_ID) {
title
slug
uri
}
}
การสืบค้นทั้งสองแบบจะส่งคืนข้อมูลเรื่องที่ถูกต้อง รวมถึงชื่อเรื่อง สลัก และ URI สำหรับเรื่อง ¡Hola mundo!:
{
"data": {
"post": {
"title": "¡Hola mundo!",
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/"
}
}
}
WPML GraphQL มีการสืบค้นสองแบบสำหรับการเข้าถึงข้อมูลเกี่ยวกับภาษาที่ติดตั้งบนไซต์ของคุณ:
การสืบค้นเหล่านี้จะมีประโยชน์หากคุณต้องการสร้างฟีเจอร์ต่างๆ เช่น ตัวสลับภาษา
ตัวอย่างเช่น หากต้องการรับข้อมูลสำหรับภาษาที่ติดตั้งทั้งหมด คุณสามารถรันแบบสอบถามต่อไปนี้:
query Languages {
languages {
code
country_flag_url
default_locale
native_name
translated_name
url
}
}
แบบสอบถามข้างต้นให้ผลลัพธ์ต่อไปนี้:
{
"data": {
"languages": [
{
"code": "en",
"country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/en.svg",
"default_locale": "en_US",
"native_name": "English",
"translated_name": "English",
"url": "http://site.com"
},
{
"code": "es",
"country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/es.svg",
"default_locale": "es_ES",
"native_name": "Español",
"translated_name": "Spanish",
"url": "http://site.com/es/"
},
{
"code": "it",
"country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/it.svg",
"default_locale": "it_IT",
"native_name": "Italiano",
"translated_name": "Italian",
"url": "http://site.com/it/"
}
]
}
}
หากคุณใช้ WPGraphQL ร่วมกับปลั๊กอิน ACF ส่วนเสริม WPML GraphQL และ ACFML (ACF Multilingual) จะช่วยขยายฟังก์ชันการทำงานนี้ ซึ่งช่วยให้คุณสามารถสืบค้นข้อมูลฟิลด์ที่กำหนดเองในภาษาต่างๆ ได้
WPGraphQL พร้อมส่วนขยาย ACF จะแสดงหน้าตัวเลือก ACF (Options Pages) เป็นออบเจ็กต์ราก ส่วนเสริม WPML GraphQL และ ACFML จะเพิ่มพารามิเตอร์ภาษาให้กับการสืบค้นหน้าตัวเลือก โดยต้องการรหัสภาษาที่ตรงกับภาษาใดภาษาหนึ่งที่ใช้งานอยู่บนไซต์ของคุณ (เช่น “de”, “pt-pt”) ซึ่งช่วยให้คุณสามารถสืบค้นข้อมูลในภาษาที่ต้องการได้:
query NewQuery {
myOptionPage(language: "de") {
addressFieldGroup {
addressTitle
repeaterAddressDetails {
addressDetails
}
}
}
}
หากต้องการใช้ WPML GraphQL คุณต้องมีแผน WPML Multilingual CMS หรือ WPML Multilingual Agency ทั้งสองแผนจะให้สิทธิ์เข้าถึงปลั๊กอิน WPML และส่วนเสริมเพิ่มเติมที่หลากหลาย ซึ่งรวมอยู่ด้วยโดยไม่มีค่าใช้จ่ายเพิ่มเติม
ดูว่าแผนใดเหมาะสมที่สุดสำหรับไซต์ของคุณ
หากคุณมีปัญหาในการใช้ WPML GraphQL โปรดไปที่หน้า ปัญหาที่ทราบและแนวทางแก้ไข ของเราเพื่อดูเคล็ดลับในการแก้ปัญหา
ยังต้องการความช่วยเหลือหรือไม่? ส่งตั๋วการสนับสนุน