我想创建一个查询片段,可用于查询共享相同属性的常规 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
这纯粹是为了化妆品,但如果只为具有相同属性的帖子类型/自定义帖子类型重用一个片段,那就太棒了。
有没有一种方法可以为我的所有帖子类型使用一个查询片段?
更新
这个问题很相似,但是在使用 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"