多种帖子类型的WPGraphQL查询片段

时间:2020-05-27 06:31:14

标签: wordpress graphql gatsby wp-graphql

我想创建一个查询片段,可用于查询共享相同属性的常规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"

0 个答案:

没有答案