Interrogare i dati dei pluginMeta Box
Meta Box
Esempi di query per interagire con i dati del plugin Meta Box.
Recuperare i campi personalizzati di Meta Box
Possiamo utilizzare i valori meta per interrogare i dati dei campi personalizzati di Meta Box, qualunque sia il loro tipo:
query GetPost($postId: ID!) {
post(by: { id: $postId }) {
id
title
text: metaValue(key: "text_field")
textarea: metaValue(key: "textarea_field")
select: metaValue(key: "select_field")
multiSelect: metaValues(key: "multi_select_field")
}
}Se il valore meta è una relazione (ad es.: un post, un utente, una tassonomia, ecc.), possiamo utilizzare il valore per interrogare l'entità corrispondente di tipo Post, User, Taxonomy, ecc.:
query GetPostWithRelationships($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Esportare la relazione verso un post
relationshipPostId: metaValue(key: "relationship_post_id")
@export(as: "relationshipPostId")
# Esportare la relazione verso un elenco di post
relationshipPostIds: metaValues(key: "relationship_post_ids")
@export(as: "relationshipPostIds")
}
}
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {
# Interrogare la relazione verso un post
relationshipPost: post(by: { id: $relationshipPostId }) {
id
title
}
# Interrogare la relazione verso un elenco di post
relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
id
title
}
}Aggiornare i campi personalizzati di Meta Box
Possiamo utilizzare le mutazioni meta per aggiornare i dati dei campi personalizzati di Meta Box, passando i loro nomi di campo e valori, qualunque sia il loro tipo:
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"],
}
}
) {
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")
}
}
}Prev