Truy vấn dữ liệu PluginAdvanced Custom Fields (ACF)
Advanced Custom Fields (ACF)
Đọc thêm trong hướng dẫn Làm việc với Advanced Custom Fields (ACF).
Các ví dụ về queries để tương tác với dữ liệu từ plugin Advanced Custom Fields (ACF).
Lấy các trường tùy chỉnh ACF
Chúng ta có thể sử dụng các trường meta để truy vấn dữ liệu trường tùy chỉnh ACF, dù chúng thuộc kiểu nào:
query GetPost($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Các kiểu trường cơ bản
text: metaValue(key: "text_field")
textarea: metaValue(key: "textarea_field")
select: metaValue(key: "select_field")
multiSelect: metaValue(key: "multi_select_field")
number: metaValue(key: "number_field")
# Trường ngày tháng
dateAsString: metaValue(key: "date_field")
dateYear: _strSubstr(string: $__dateAsString, offset: 0, length: 4)
dateMonth: _strSubstr(string: $__dateAsString, offset: 4, length: 2)
dateDay: _strSubstr(string: $__dateAsString, offset: 6, length: 2)
dateTime: _makeTime(year: $__dateYear, month: $__dateMonth, day: $__dateDay, hour: 0, minute: 0, second: 0)
date: _date(format: "Y-m-d", timestamp: $__dateTime)
}
}Nếu giá trị meta là một mối quan hệ (ví dụ: một bài viết, một người dùng, một phân loại, v.v.), chúng ta có thể sử dụng giá trị đó để truy vấn thực thể tương ứng thuộc kiểu Post, User, Taxonomy, v.v.:
query GetPostWithRelationships($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Xuất mối quan hệ đến một bài viết
relationshipPostId: metaValue(key: "relationship_post_id")
@export(as: "relationshipPostId")
# Xuất mối quan hệ đến danh sách bài viết
relationshipPostIds: metaValue(key: "relationship_post_ids")
@export(as: "relationshipPostIds")
}
}
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {
# Truy vấn mối quan hệ đến một bài viết
relationshipPost: post(by: { id: $relationshipPostId }) {
id
title
}
# Truy vấn mối quan hệ đến danh sách bài viết
relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
id
title
}
}Cập nhật các trường tùy chỉnh ACF
Chúng ta có thể sử dụng meta mutations để cập nhật dữ liệu trường tùy chỉnh ACF, bằng cách truyền tên trường và giá trị của chúng, dù thuộc kiểu nào:
mutation UpdatePost($postId: ID!) {
updatePost(
input: {
id: $postId
meta: {
text_field: ["New text value"],
textarea_field: ["New textarea value"],
select_field: ["New select value"],
multi_select_field: ["Choice 1", "Choice 2"],
number_field: [42],
date_field: ["20240320"],
}
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
text: metaValue(key: "text_field")
textarea: metaValue(key: "textarea_field")
select: metaValue(key: "select_field")
multiSelect: metaValues(key: "multi_select_field")
number: metaValue(key: "number_field")
date: metaValue(key: "date_field")
}
}
}