Фрагменты запросов WPGraphQL для нескольких типов сообщений

Я хочу создать фрагмент запроса, который можно использовать для запроса обычных сообщений 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"

0 ответов

Другие вопросы по тегам