Requêter les données des pluginsMeta Box
Meta Box
Exemples de requêtes pour interagir avec les données du plugin Meta Box.
Récupérer les champs personnalisés de Meta Box
Nous pouvons utiliser les valeurs méta pour interroger les données des champs personnalisés de Meta Box, quel que soit leur type :
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")
}
}Si la valeur méta est une relation (ex. : une publication, un utilisateur, une taxonomie, etc.), nous pouvons utiliser la valeur pour interroger l'entité correspondante de type Post, User, Taxonomy, etc. :
query GetPostWithRelationships($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Exporter la relation vers une publication
relationshipPostId: metaValue(key: "relationship_post_id")
@export(as: "relationshipPostId")
# Exporter la relation vers une liste de publications
relationshipPostIds: metaValues(key: "relationship_post_ids")
@export(as: "relationshipPostIds")
}
}
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {
# Interroger la relation vers une publication
relationshipPost: post(by: { id: $relationshipPostId }) {
id
title
}
# Interroger la relation vers une liste de publications
relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
id
title
}
}Mettre à jour les champs personnalisés de Meta Box
Nous pouvons utiliser les mutations méta pour mettre à jour les données des champs personnalisés de Meta Box, en passant leurs noms de champ et leurs valeurs, quel que soit leur type :
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