Consultar datos de pluginsAdvanced Custom Fields (ACF)
Advanced Custom Fields (ACF)
Lee más en la guía Trabajar con Advanced Custom Fields (ACF).
Ejemplos de consultas para interactuar con datos del plugin Advanced Custom Fields (ACF).
Obtener campos personalizados de ACF
Podemos usar Valores meta para consultar los datos de campos personalizados de ACF, sea cual sea su tipo:
query GetPost($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Tipos de campo básicos
text: metaValue(key: "text_field")
textarea: metaValue(key: "textarea_field")
select: metaValue(key: "select_field")
multiSelect: metaValue(key: "multi_select_field")
number: metaValue(key: "number_field")
# Campo de fecha
dateAsString: metaValue(key: "date_field")
dateYear: _strSubstr(string: $__dateAsString, offset: 0, length: 4)
dateMonth: _strSubstr(string: $__dateAsString, offset: 4, length: 2)
dateDay: _strSubstr(string: $__dateAsString, offset: 6, length: 2)
dateTime: _makeTime(year: $__dateYear, month: $__dateMonth, day: $__dateDay, hour: 0, minute: 0, second: 0)
date: _date(format: "Y-m-d", timestamp: $__dateTime)
}
}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: metaValue(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 ACF
Podemos usar Valores meta para actualizar los datos de campos personalizados de ACF, 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"],
number_field: [42],
date_field: ["20240320"],
}
}
) {
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")
number: metaValue(key: "number_field")
date: metaValue(key: "date_field")
}
}
}