Requêter les données des plugins
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")
    }
  }
}