Trên trang này
Bạn có thể làm gì với WPML GraphQL?
Truy vấn thông tin ngôn ngữ và bản dịch
Truy vấn các bài viết cụ thể qua các ngôn ngữ
Truy vấn dữ liệu từ các ngôn ngữ đã cài đặt
Trên trang này
Bạn có thể làm gì với WPML GraphQL?
Truy vấn thông tin ngôn ngữ và bản dịch
Truy vấn các bài viết cụ thể qua các ngôn ngữ
Truy vấn dữ liệu từ các ngôn ngữ đã cài đặt
Để bắt đầu, hãy cài đặt và kích hoạt các plugin sau:
Để bao gồm các trường đa ngôn ngữ từ plugin ACF trong WPGraphQL schema, hãy cài đặt thêm:
WPML GraphQL tích hợp với WPGraphQL để cho phép bạn truy vấn nội dung đa ngôn ngữ được tạo bằng WPML.
Từ GraphQL → GraphQL IDE , bạn có thể sử dụng Query Composer để:
Ví dụ, như hình ảnh bên dưới cho thấy, bạn có thể dễ dàng lấy danh sách tất cả các bài viết trên trang web của mình, kèm theo mã ngôn ngữ, slug, URI và chi tiết cho các bản dịch của chúng.
Dưới đây, chúng tôi sẽ sử dụng một trang web thử nghiệm đa ngôn ngữ để hướng dẫn bạn cách sử dụng WPML GraphQL để truy vấn nội dung và các bản dịch của nó.
Với WPML GraphQL, bạn có thể sử dụng các trường language và translation trong các truy vấn của mình:
language cho phép bạn lấy các chi tiết như mã ngôn ngữ, URL cờ quốc gia, tên bản ngữ, tên đã dịch và URL trang chủ cho các loại bài viết, phân loại, menu, mục menu và bình luận.languageCode lấy mã ngôn ngữ cho các bài viết, thuật ngữ phân loại, menu, mục menu và bình luận mà không cần thêm chi tiết ngôn ngữ.translations lấy các bản dịch cho các loại bài viết và thuật ngữ phân loại.Khi bạn truy vấn bình luận, các trường language và languageCode sẽ khớp với ngôn ngữ của bài viết mà chúng thuộc về.
Đây là ví dụ về một truy vấn lấy các bài viết cùng với các chi tiết liên quan, bao gồm slug bài viết, URI, mã ngôn ngữ, danh mục và bất kỳ bản dịch nào hiện có:
query Posts{
posts(where: {language: "en"}) {
nodes {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
translations {
slug
uri
language {
code
}
categories {
nodes {
name
}
}
}
}
}
}
Việc chạy truy vấn này sẽ trả về thông tin ngôn ngữ và bản dịch cho mỗi bài viết, cùng với các mục được kết nối như danh mục. Các kết nối sẽ tự động tuân theo ngôn ngữ của mục cấp cao nhất (trong trường hợp này là các bài viết):
{
"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
},
categories {
nodes {
{
name
},
{
name
}
]
},
translations {
{
slug
uri
language {
code
},
categories {
nodes {
{
name
},
{
name
}
]
}
},
{
slug
uri
language {
code
},
categories {
nodes {
{
name
},
{
name
}
]
}
}
]
}
]
}
}
}
WPML GraphQL cho phép bạn sử dụng bộ lọc language để:
WPML GraphQL hỗ trợ các kết nối, vì vậy khi bạn lọc một mục cấp cao nhất như bài viết theo ngôn ngữ, tất cả các mục liên quan, chẳng hạn như danh mục và thẻ, sẽ tự động tuân theo cùng một ngôn ngữ đó. Điều này giúp các truy vấn của bạn nhất quán và chính xác.
Đây là ví dụ về một truy vấn lấy các bài viết bằng tiếng Tây Ban Nha, bao gồm slug, URI và các danh mục được kết nối của chúng:
query PostsES{
posts(where: {language: "es"}) {
nodes {
slug
uri
categories {
nodes {
name
}
}
}
}
}
Sau đây là kết quả trả về của truy vấn:
{
"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"
}
]
}
}
]
}
}
}
Với WPML GraphQL, bạn cũng có thể truy vấn các bài viết riêng lẻ bằng bất kỳ ngôn ngữ nào thông qua ID bài viết hoặc slug.
Ví dụ: nếu bạn có một bài viết có tiêu đề ¡Hola mundo! (bản dịch tiếng Tây Ban Nha của Hello world!), với slug là hola-mundo và ID bài viết là 2, bạn có thể sử dụng các truy vấn sau để lấy bài viết đó:
query PostBySlug {
post(id: "hola-mundo", idType: SLUG) {
title
slug
uri
}
}
query PostById {
post(id: "2", idType: DATABASE_ID) {
title
slug
uri
}
}
Cả hai truy vấn sẽ trả về chính xác dữ liệu bài viết, bao gồm tiêu đề, slug và URI cho bài viết ¡Hola mundo!:
{
"data": {
"post": {
"title": "¡Hola mundo!",
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/"
}
}
}
WPML GraphQL cung cấp hai truy vấn để truy cập dữ liệu về các ngôn ngữ được cài đặt trên trang web của bạn:
Các truy vấn này có thể hữu ích nếu bạn đang muốn xây dựng các tính năng như bộ chuyển đổi ngôn ngữ.
Ví dụ, để lấy dữ liệu cho tất cả các ngôn ngữ đã cài đặt, bạn có thể chạy truy vấn sau:
query Languages {
languages {
code
country_flag_url
default_locale
native_name
translated_name
url
}
}
Truy vấn trên tạo ra kết quả sau:
{
"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/"
}
]
}
}
Nếu bạn đang sử dụng WPGraphQL với plugin ACF, các tiện ích bổ sung WPML GraphQL và ACFML (ACF Multilingual) sẽ mở rộng chức năng này. Điều này cho phép bạn truy vấn dữ liệu trường tùy chỉnh bằng các ngôn ngữ khác nhau.
WPGraphQL cùng với phần mở rộng ACF của nó hiển thị các Trang Tùy chọn ACF (ACF Options Pages) dưới dạng các đối tượng gốc. Cùng với nhau, WPML GraphQL và các tiện ích bổ sung ACFML thêm một tham số ngôn ngữ vào các truy vấn Trang Tùy chọn, yêu cầu một mã ngôn ngữ khớp với một trong các ngôn ngữ đang hoạt động trên trang web của bạn (ví dụ: “de”, “pt-pt”). Điều này cho phép bạn truy vấn dữ liệu bằng một ngôn ngữ cụ thể:
query NewQuery {
myOptionPage(language: "de") {
addressFieldGroup {
addressTitle
repeaterAddressDetails {
addressDetails
}
}
}
}
Để sử dụng WPML GraphQL, bạn cần có gói WPML Multilingual CMS hoặc WPML Multilingual Agency. Cả hai gói đều cung cấp quyền truy cập vào plugin WPML và một loạt các tiện ích bổ sung khác, tất cả đều được bao gồm mà không tính thêm phí.
Xem gói nào phù hợp nhất cho trang web của bạn.
Nếu bạn gặp khó khăn khi sử dụng WPML GraphQL, hãy truy cập trang Các vấn đề đã biết và Giải pháp của chúng tôi để biết các mẹo khắc phục sự cố.
Bạn vẫn cần trợ giúp? Hãy gửi phiếu hỗ trợ .