Query WordPress 数据
Query WordPress 数据自定义分类

自定义分类

在指南 使用自定义分类 中了解更多详情。

以下是获取自定义分类法数据的 Query 示例。

未映射到 Schema 的分类法

使用分类法 "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
        }
      }
    }
  }
}

获取与自定义文章关联的分类

GenericCustomPost 类型具有 categories 字段,用于获取添加到自定义文章的自定义分类:

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

按分类筛选自定义文章

要获取具有指定分类的自定义文章,可以使用输入 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
  }
}

为自定义文章设置分类

Mutation:

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

嵌套 Mutation:

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

创建、更新和删除自定义分类

此 Query 为自定义 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
  }
}