【发布时间】:2020-05-09 03:28:00
【问题描述】:
我有一个 Gatsby 网站,它使用 GraphQL 从 Wordpress REST API 查询信息以动态创建网站页面。我想将我的索引页面设置为动态创建的主页,即home.html
我看到了类似的帖子 On Gatsby CMS how can i set the about page as a index page
但是,他们有一个与他们的 about 页面相对应的 about.js 文件,这意味着他们可以将其作为组件导出并在索引中使用,或者他们甚至可以将该文件的内容复制到 index.js。我想设置为我的索引的主页是动态生成的,并且使用不能在page.js 模板之外使用的 GraphQL 查询。所以我看不到将其复制到另一个文件的简单方法。
我想我的最后一个选择是将我的服务器设置为指向public/home.html 中的静态文件并将其作为站点根目录提供服务,但该帖子中的人试图阻止人们这样做。
有什么想法吗?
这是生成网站页面的 page.js 模板:
const PageTemplate = ({ data }) => (
<Layout>
{<h1 dangerouslySetInnerHTML={{ __html: data.currentPage.title }} />}
{
renderBlocks(gatherBlocks(data.currentPage.acf.page_blocks, data))
}
</Layout>
);
export default PageTemplate;
export const pageQuery = graphql`
query ($id: String!) {
currentPage: wordpressPage(id: {eq: $id}) {
title
id
parent {
id
}
template
acf {
page_blocks {
block_type {
acf_fc_layout
cs_title
cs_text
}
wordpress_id
}
}
}
}
`;
这是我的索引页:
import React from "react"
import Layout from "../components/global/Layout"
const IndexPage = () => (
<Layout>
<h1>Hi people</h1>
<p>Welcome to the Tank Gatsby site.</p>
<p>Now go build something great.</p>
</Layout>
)
export default IndexPage
【问题讨论】:
-
您目前如何从
gatsby-node.js的 Wordpress 中获取您想要作为主页的页面的数据?
标签: javascript gatsby wordpress-rest-api