我想创建一个查询片段,可用于查询共享相同属性的常规WordPress帖子和自定义帖子类型。假设我有以下使用graphql别名的代码:
query getData($includeCategory: Boolean!) {
wp {
data1: customPostTypes(where: {categoryName: "Exammple 1"}, first: 3) {
nodes {
...dataFragment
}
}
data2: posts(first:3) {
nodes {
...dataFragment
}
}
data3: customPostTypes(where: {categoryName:"Example 2"}, first: 3) {
nodes {
...dataFragment
}
}
}
}
和一个类似于以下内容的查询片段:
fragment dataFragment on WP_CustomPostType {
title
uri
status
id
categories @include(if: $includeCategory) {
nodes {
name
}
}
}
因为我必须定义片段要使用的字段类型,所以它使我无法将其用于所有想要的帖子类型。上面的示例仅适用于customPostTypes,而不适用于发布,因为需要为其定义的字段为WP_Post
这纯粹是用于化妆品,但是对于具有相同属性的帖子类型/自定义帖子类型,仅重用一个片段将是很棒的。
有没有一种方法可以对我的所有帖子类型使用一个查询片段?
更新
此question与之类似,但是在使用WPGraphQL和自定义帖子类型时,使用如下代码:
exports.sourceNodes = ({ actions }) => {
const { createTypes } = actions
const typeDefs = `
interface PostType {
title: String
uri: String!
status: String!
id: ID!
}
type Work implements Node & PostType {
title: String
uri: String!
status: String!
id: ID!
}
type Post implements Node & PostType {
title: String
uri: String!
status: String!
id: ID!
}
`
createTypes(typeDefs)
}
产生错误:UNHANDLED REJECTION Schema must contain uniquely named types but contains multiple types named "WP_Work"