Query Data Plugin
Query Data PluginAdvanced Custom Fields (ACF)

Advanced Custom Fields (ACF)

Baca selengkapnya di panduan Bekerja dengan Advanced Custom Fields (ACF).

Contoh queries untuk berinteraksi dengan data dari plugin Advanced Custom Fields (ACF).

Mengambil custom fields ACF

Kita dapat menggunakan meta fields untuk query data custom fields ACF, apapun tipenya:

query GetPost($postId: ID!) {
  post(by: { id: $postId }) {
    id
    title
 
    # Tipe field dasar
    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")
 
    # Field tanggal
    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)
  }
}

Jika nilai meta adalah sebuah relasi (misalnya: sebuah post, pengguna, taksonomi, dll.), kita dapat menggunakan nilai tersebut untuk query entitas yang bersesuaian bertipe Post, User, Taxonomy, dll.:

query GetPostWithRelationships($postId: ID!) {
  post(by: { id: $postId }) {
    id
    title
    
    # Ekspor relasi ke sebuah post
    relationshipPostId: metaValue(key: "relationship_post_id")
      @export(as: "relationshipPostId")
 
    # Ekspor relasi ke daftar post
    relationshipPostIds: metaValue(key: "relationship_post_ids")
      @export(as: "relationshipPostIds")
  }
}
 
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {  
  # Query relasi ke sebuah post
  relationshipPost: post(by: { id: $relationshipPostId }) {
    id
    title
  }
 
  # Query relasi ke daftar post
  relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
    id
    title
  }
}

Memperbarui custom fields ACF

Kita dapat menggunakan meta mutations untuk memperbarui data custom fields ACF, dengan meneruskan nama field dan nilainya, apapun tipenya:

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