Javascript 在盖茨比中过滤Wordpress类别
我目前正在使用盖茨比创建一个网站,并使用盖茨比源Wordpress插件从Wordpress查询数据。在我的盖茨比节点文件中,我已经设置了基于帖子类别动态创建网页的功能。当我尝试运行按类别slug排序并按发布日期筛选的查询时,我收到一个错误:“错误:无法获取此StaticQuery的结果。” 有人能看看这个,让我知道我到底出了什么问题吗 盖茨比节点文件:Javascript 在盖茨比中过滤Wordpress类别,javascript,wordpress,graphql,gatsby,Javascript,Wordpress,Graphql,Gatsby,我目前正在使用盖茨比创建一个网站,并使用盖茨比源Wordpress插件从Wordpress查询数据。在我的盖茨比节点文件中,我已经设置了基于帖子类别动态创建网页的功能。当我尝试运行按类别slug排序并按发布日期筛选的查询时,我收到一个错误:“错误:无法获取此StaticQuery的结果。” 有人能看看这个,让我知道我到底出了什么问题吗 盖茨比节点文件: const path = require('path') module.exports.createPages = async ({ grap
const path = require('path')
module.exports.createPages = async ({ graphql, actions }) => {
const { createPage } = actions
const blogPostTemplate = path.resolve('./src/templates/blog-post.js')
const blogCategoryFilter = path.resolve('./src/templates/blog-filter-category.js')
const res = await graphql(`
query {
allWordpressPost {
edges {
node {
slug
}
}
}
allWordpressCategory {
edges {
node {
slug
}
}
}
}
`)
res.data.allWordpressPost.edges.forEach((edge) => {
createPage({
component: blogPostTemplate,
path: `/blog/${edge.node.slug}`,
context: {
slug: edge.node.slug,
}
})
})
res.data.allWordpressCategory.edges.forEach((edge) => {
createPage({
component: blogCategoryFilter,
path: `/blog/${edge.node.slug}`,
context: {
slug: edge.node.slug,
}
})
})
}
我用于实际生成过滤和排序内容的模板文件(blog filter category.js):
看起来更接近了,但我最终还是收到了同样的错误信息。我迷路了!提前感谢您的帮助。祝贺您选择与盖茨比合作 我看到的第一个问题是,您试图在静态查询中使用变量。这在目前是不可能的。传递到页面上下文的变量仅在中可用 页面查询在页面模板中定义为简单导出,如:
import { graphql } from 'gatsby'
export const query = graphql`
query MyQuery($slug: String!) {
allWordpressPost (filter: {categories: {elemMatch: {slug: { eq: $slug }}}}) {
edges {
node {
title
slug
content
date(formatString: "MMMM DD, YYYY")
}
}
}
}`
在此处了解有关Gatsby中页面查询和静态查询之间的差异的更多信息:
query($slug: String!) {
allWordpressPost (filter: {categories: {elemMatch: {slug: { eq: $slug }}}}) {
edges {
node {
title
slug
content
date(formatString: "MMMM DD, YYYY")
}
}
}
}
import { graphql } from 'gatsby'
export const query = graphql`
query MyQuery($slug: String!) {
allWordpressPost (filter: {categories: {elemMatch: {slug: { eq: $slug }}}}) {
edges {
node {
title
slug
content
date(formatString: "MMMM DD, YYYY")
}
}
}
}`