Queries over plugin-dataAdvanced Custom Fields (ACF)
Advanced Custom Fields (ACF)
Lees meer in de gids Werken met Advanced Custom Fields (ACF).
Voorbeelden van queries om te werken met gegevens van de Advanced Custom Fields (ACF) plugin.
ACF aangepaste velden ophalen
We kunnen meta-velden gebruiken om ACF aangepaste veldgegevens op te vragen, ongeacht het type:
query GetPost($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Basis veldtypen
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")
# Datumveld
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)
}
}Als de meta-waarde een relatie is (bijv. een post, een gebruiker, een taxonomie, enz.), kunnen we de waarde gebruiken om de bijbehorende entiteit van het type Post, User, Taxonomy, enz. op te vragen:
query GetPostWithRelationships($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Exporteer de relatie naar een post
relationshipPostId: metaValue(key: "relationship_post_id")
@export(as: "relationshipPostId")
# Exporteer de relatie naar een lijst van posts
relationshipPostIds: metaValue(key: "relationship_post_ids")
@export(as: "relationshipPostIds")
}
}
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {
# Vraag de relatie naar een post op
relationshipPost: post(by: { id: $relationshipPostId }) {
id
title
}
# Vraag de relatie naar een lijst van posts op
relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
id
title
}
}ACF aangepaste velden bijwerken
We kunnen meta-mutaties gebruiken om ACF aangepaste veldgegevens bij te werken, door hun veldnamen en waarden mee te geven, ongeacht het 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"],
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")
}
}
}