Consultar Dados de PluginsAdvanced Custom Fields (ACF)
Advanced Custom Fields (ACF)
Saiba mais no guia Trabalhando com Advanced Custom Fields (ACF).
Exemplos de queries para interagir com dados do plugin Advanced Custom Fields (ACF).
Buscando campos personalizados ACF
Podemos usar campos meta para consultar dados de campos personalizados ACF, independentemente do tipo que sejam:
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 data
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)
}
}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: metaValue(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 ACF
Podemos usar mutations meta para atualizar dados de campos personalizados ACF, passando os nomes e valores dos campos, 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"],
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")
}
}
}Prev