Plugin-Daten abfragenAdvanced Custom Fields (ACF)
Advanced Custom Fields (ACF)
Mehr dazu in der Anleitung Mit Advanced Custom Fields (ACF) arbeiten.
Beispiele für queries zur Interaktion mit Daten aus dem Plugin Advanced Custom Fields (ACF).
ACF-Felder abrufen
Wir können Meta-Felder verwenden, um ACF-Felder abzufragen, unabhängig von ihrem Typ:
query GetPost($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Grundlegende Feldtypen
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")
# Datumsfeld
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)
}
}Wenn der Meta-Wert eine Beziehung ist (z. B. ein Beitrag, ein Benutzer, eine Taxonomie usw.), können wir den Wert verwenden, um die entsprechende Entität vom Typ Post, User, Taxonomy usw. abzufragen:
query GetPostWithRelationships($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Beziehung zu einem Beitrag exportieren
relationshipPostId: metaValue(key: "relationship_post_id")
@export(as: "relationshipPostId")
# Beziehung zu einer Liste von Beiträgen exportieren
relationshipPostIds: metaValue(key: "relationship_post_ids")
@export(as: "relationshipPostIds")
}
}
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {
# Beziehung zu einem Beitrag abfragen
relationshipPost: post(by: { id: $relationshipPostId }) {
id
title
}
# Beziehung zu einer Liste von Beiträgen abfragen
relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
id
title
}
}ACF-Felder aktualisieren
Wir können Meta-Mutationen verwenden, um ACF-Felder zu aktualisieren, indem wir ihre Feldnamen und Werte übergeben, unabhängig von ihrem Typ:
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")
}
}
}