Consultar datos de plugins
Consultar datos de pluginsMeta Box

Meta Box

Ejemplos de consultas para interactuar con datos del plugin Meta Box.

Obtener campos personalizados de Meta Box

Podemos usar Valores meta para consultar los datos de campos personalizados de Meta Box, sea cual sea su 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")
  }
}

Si el valor meta es una relación (p. ej.: una entrada, un usuario, una taxonomía, etc.), podemos usar el valor para consultar la entidad correspondiente de tipo Post, User, Taxonomy, etc.:

query GetPostWithRelationships($postId: ID!) {
  post(by: { id: $postId }) {
    id
    title
    
    # Exportar la relación a una entrada
    relationshipPostId: metaValue(key: "relationship_post_id")
      @export(as: "relationshipPostId")
 
    # Exportar la relación a una lista de entradas
    relationshipPostIds: metaValues(key: "relationship_post_ids")
      @export(as: "relationshipPostIds")
  }
}
 
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {  
  # Consultar la relación a una entrada
  relationshipPost: post(by: { id: $relationshipPostId }) {
    id
    title
  }
 
  # Consultar la relación a una lista de entradas
  relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
    id
    title
  }
}

Actualizar campos personalizados de Meta Box

Podemos usar Valores meta para actualizar los datos de campos personalizados de Meta Box, pasando sus nombres de campo y valores, sea cual sea su 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")
    }
  }
}