【发布时间】:2021-04-14 18:49:54
【问题描述】:
有什么方法可以让我有一个查询并且 gatsby-paginate 为所有类别创建所有分页?
而不是这样做,我必须为每个类别手动创建查询。
gatsby-node.js
graphql(queryCatUncategorized).then(result => {
if (result.errors) {
console.log(result.errors)
reject(result.errors)
}
createPaginatedPages({
edges: result.data.allWordpressPost.edges,
createPage: createPage,
pageTemplate: "src/templates/category.js",
pageLength: 2,
pathPrefix: "uncategorized",
})
// END Paginate Categories - Uncategorized
})
反正我可以这样做吗?
.then(() => {
return graphql(`
{
allWordpressCategory(filter: { count: { gt: 0 } }) {
edges {
node {
id
name
slug
}
}
}
allWordpressPost(filter: {categories: {elemMatch: {slug: {eq: "uncategorized"}}}}) {
edges {
node {
id
slug
title
categories {
name
slug
}
}
}
}
}
`)
})
.then(result => {
if (result.errors) {
result.errors.forEach(e => console.error(e.toString()))
return Promise.reject(result.errors)
}
const categoriesTemplate = path.resolve(`./src/templates/category.js`)
// Create a Gatsby page for each WordPress Category
_.each(result.data.allWordpressCategory.edges, ({ node: cat }) => {
createPaginatedPages({
edges: result.data.allWordpressPost.edges,
createPage: createPage,
pageTemplate: categoriesTemplate,
pageLength: 2,
pathPrefix: `/category/${cat.slug}`
})
})
})
问题在于,
这只会返回未分类类别下的帖子。
allWordpressPost(filter: {categories: {elemMatch: {slug: {eq: "uncategorized"}}}}) {
删除过滤器将显示所有帖子。
allWordpressPost {
这行不通
allWordpressPost(filter: {categories: {elemMatch: {slug: {eq: "$slug"}}}}) {
几天前我刚开始学习 Gatsby,我完全是 JavaScript 和 React 的菜鸟,所以请放轻松。
提前致谢。
【问题讨论】: