Consultar Dados de Plugins
Consultar Dados de PluginsMeta Box

Meta Box

Exemplos de queries para interagir com dados do plugin Meta Box.

Buscando campos personalizados do Meta Box

Podemos usar campos meta para consultar dados de campos personalizados do Meta Box, independentemente do tipo que sejam:

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 o valor meta for um relacionamento (ex.: um post, um usuário, uma taxonomia, etc.), podemos usar o valor para consultar a entidade correspondente do tipo Post, User, Taxonomy, etc.:

query GetPostWithRelationships($postId: ID!) {
  post(by: { id: $postId }) {
    id
    title
    
    # Exportar o relacionamento com um post
    relationshipPostId: metaValue(key: "relationship_post_id")
      @export(as: "relationshipPostId")
 
    # Exportar o relacionamento com uma lista de posts
    relationshipPostIds: metaValues(key: "relationship_post_ids")
      @export(as: "relationshipPostIds")
  }
}
 
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {  
  # Consultar o relacionamento com um post
  relationshipPost: post(by: { id: $relationshipPostId }) {
    id
    title
  }
 
  # Consultar o relacionamento com uma lista de posts
  relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
    id
    title
  }
}

Atualizando campos personalizados do Meta Box

Podemos usar mutations meta para atualizar dados de campos personalizados do Meta Box, passando seus nomes de campo e valores, independentemente do tipo que sejam:

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")
    }
  }
}