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