Query data WordPress
Query data WordPressKategori Kustom

Kategori Kustom

Baca selengkapnya di panduan Bekerja dengan Kategori Kustom.

Berikut adalah contoh query untuk mengambil data taksonomi kategori kustom.

Taksonomi yang tidak dipetakan ke skema

Ambil kategori dengan taksonomi "product-category":

query {
  categories(taxonomy: "product-category") {
    __typename
 
    ...on Category {
      count
      description
      id
      name
      slug
      url
    }
    
    ...on GenericCategory {
      taxonomy   
      customPostCount
      customPosts {
        __typename
        ...on CustomPost {
          id
          title
        }
      }
    }
  }
}

Mengambil kategori yang terkait dengan custom post

Tipe GenericCustomPost memiliki field categories, untuk mengambil kategori kustom yang ditambahkan ke custom post:

query {
  customPosts(
    filter: { customPostTypes: "product" }
  ) {
    __typename
 
    ... on GenericCustomPost {
      categories(taxonomy: "product-cat") {
        __typename
        id
        name
        taxonomy
      }
    }
  }
}

Memfilter custom post berdasarkan kategori

Untuk mengambil custom post dengan kategori tertentu, kita dapat menggunakan input filter.categories:

query {
  customPostsByCatIDs: customPosts(
    filter: {
      categories: {
        includeBy: {
          ids: [26, 28]
        }
        taxonomy: "product-cat"
      }
    }
  ) {
    id
    title
  }
 
  customPostsByCatSlugs: customPosts(
    filter: {
      categories: {
        includeBy: {
          slugs: ["news", "sports"]
        }
        taxonomy: "product-cat"
      }
    }
  ) {
    id
    title
  }
}

Menetapkan kategori pada custom post

Mutasi:

mutation {
  setCategoriesOnCustomPost(
    input: {
      id: 1499, 
      categoryIDs: [2, 5]
      taxonomy: "cat-taxonomy"
    }
  ) {
    status
    errors {
      __typename
      ... on ErrorPayload {
        message
      }
    }
    customPostID
    customPost {
      categories(taxonomy: "cat-taxonomy") {
        id
      }
      categoryNames(taxonomy: "cat-taxonomy")
    }
  }
}

Mutasi bersarang:

mutation {
  customPost(by: { id: 1499 }) {
    setCategories(
      input: {
        categoryIDs: [2, 5]
        taxonomy: "cat-taxonomy"
      }
    ) {
      status
      errors {
        __typename
        ... on ErrorPayload {
          message
        }
      }
      customPostID
      customPost {
        categories(taxonomy: "cat-taxonomy") {
          id
        }
        categoryNames(taxonomy: "cat-taxonomy")
      }
    }
  }
}

Membuat, memperbarui, dan menghapus kategori kustom

Query ini membuat, memperbarui, dan menghapus term kategori untuk kategori kustom some-cat-taxonomy:

mutation CreateUpdateDeleteCategories {
  createCategory(input: {
    taxonomy: "some-cat-taxonomy",
    name: "Some name"
    slug: "Some slug"
    description: "Some description"
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    category {
      ...CategoryData
    }
  }
 
  updateCategory(input: {
    id: 1
    taxonomy: "some-cat-taxonomy"
    name: "Some updated name"
    slug: "Some updated slug"
    description: "Some updated description"
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    category {
      ...CategoryData
    }
  }
 
  deleteCategory(input: {
    id: 1
    taxonomy: "some-cat-taxonomy"
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
  }
}
 
fragment CategoryData on Category {
  id
  name
  slug
  description
  parent {
    id
  }
}