🏁 Bạn có thể biến đổi các giá trị meta trong Gato GraphQL
v11.3 của Gato GraphQL đã được phát hành hôm nay, với sự hỗ trợ cho một tính năng quan trọng: Các mutations meta!
Bạn có thể thêm, cập nhật và xóa các giá trị meta, cho custom posts, tags, categories, comments và users.
Dưới đây là các ví dụ về queries biến đổi meta.
Thêm meta
Bạn có thể thêm các mục meta vào custom posts, tags, categories, comments và users.
Query này thêm một mục meta vào bài viết có ID 4:
mutation {
addCustomPostMeta(input: {
id: 4
key: "some_key"
value: "Some value"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPost {
id
metaValue(key: "some_key")
}
}
}Query này thêm cùng một khóa meta với các giá trị khác nhau vào các bài viết khác nhau, theo lô:
mutation {
addCustomPostMetas(inputs: [
{
id: 4
key: "some_key"
value: "Some value"
},
{
id: 5
key: "some_key"
value: "Some other value"
},
{
id: 6
key: "some_key"
value: "Yet another value"
}
]) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPost {
id
metaValue(key: "some_key")
}
}
}Cập nhật meta
Cập nhật một mục meta của category:
mutation {
updateCategoryMeta(input: {
id: 20
key: "_source"
value: "Updated source value"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
__typename
id
metaValue(key: "_source")
}
}
}Query này sử dụng nested mutations để cập nhật một giá trị meta trong một bài viết:
mutation {
post(by: {id: 1}) {
updateMeta(input: {
key: "some_key"
value: "Updated description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
metaValue(key: "single_meta_key")
}
}
}
}Xóa meta
Xóa một mục meta khỏi một bài viết:
mutation {
deletePostMeta(input: {
id: 5
key: "some_key"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
metaValue(key: "some_key")
}
}
}Xóa cùng một mục meta khỏi nhiều bài viết, theo lô:
mutation {
deletePostMetas(inputs: [
{
id: 5
key: "some_key"
},
{
id: 6
key: "some_key"
}
]) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
metaValue(key: "some_key")
}
}
}Đặt nhiều mục meta cùng một lúc
Bạn có thể đặt nhiều mục meta cùng một lúc bằng cách truyền một JSON vào các mutations set{Entity}Meta khác nhau:
mutation {
setCustomPostMeta(input: {
id: 4
entries: {
single_meta_key: [
"This is a single entry",
],
object_meta_key: [
{
key: "This is a key",
value: "This is a value",
},
],
array_meta_key: [
"This is a string",
"This is another string",
],
object_array_meta_key: [
[
{
key: "This is a key 1",
value: "This is a value 1",
},
{
key: "This is a key 2",
value: "This is a value 2",
},
]
],
}
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPost {
id
meta(keys: ["single_meta_key", "object_meta_key", "array_meta_key", "object_array_meta_key"])
}
}
}Đặt các mục meta khi tạo/cập nhật một thực thể
Bạn có thể định nghĩa các mục meta trực tiếp khi tạo hoặc cập nhật một custom post, tag, category hoặc comment, thông qua tham số meta.
Query này đặt meta khi thêm một comment:
mutation {
addCommentToCustomPost(input: {
customPostID: 1130
commentAs: { html: "New comment" }
meta: {
some_meta_key: [
"This is a single entry",
],
another_meta_key: [
"This is an array entry 1",
"This is an array entry 2",
],
}
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
comment {
id
meta(keys: ["some_meta_key", "another_meta_key"])
}
}
}Query này đưa meta vào nested mutation Post.update:
mutation {
post(by: {id: 1}) {
update(input: {
meta: {
single_meta_key: [
"This is an updated value",
]
}
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
metaValue(key: "single_meta_key")
}
}
}
}