Queries over plugin-data
Queries over plugin-dataAdvanced Custom Fields (ACF)

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")
    }
  }
}