如何在 Gatsby 中获取所有 Wordpress 帖子和显示标签

Posted

技术标签:

【中文标题】如何在 Gatsby 中获取所有 Wordpress 帖子和显示标签【英文标题】:How to get all Wordpress posts and display tags in Gatsby 【发布时间】:2020-07-31 18:12:42 【问题描述】:

第一次使用 Gatbsy 和 GraphQL。我想知道如何显示标签。 GraphQL 编辑器中没有以明显的方式列出。

我希望在分类法下找到它们,但它只显示名称和类型的“类别”和“帖子”......

这是在一个自定义的 React 页面中,该页面将用作特定类别帖子的索引。 另外,不相关的问题... Gatbsy 似乎只从 Wordpress 网站上提取了我的一些内容。我错过了很多缩略图,尽管它们是帖子中的特色图片。

export const pageQuery = graphql`
  query 
    allWordpressPage 
      edges 
        node 
          id
          title
          excerpt
          slug
        
      
    
    allWordpressPost 
      edges 
        node 
          title
          excerpt
          slug
          featured_media 
            source_url
          
          categories 
            name
            taxonomy 
              name
              types

            
          
        
      
    
  
`

const ClientProjectsIndexPage = ( data ) => 
  console.log(data)
  return (
    <div className="wave-pattern-bg">
      <VideoBanner
        text="Client Projects"
        videoSrc=meetingVid
        imageSrc=null
      />
      <Layout>
        <SEO title="Index of Client Projects" />
        <div className="card-wrap index">
          data.allWordpressPost.edges
            .filter(post => post.node.categories[0].name === "Client Projects")
            .map((post, index) => (
              <Segment
                key=index
                onClick=() => 
                  navigate(`/$post.node.slug`)
                
              >
                <div className="index-portrait-wrap">
                  post.node.featured_media ? (
                    <Image avatar src=post.node.featured_media.source_url />
                  ) : (
                    <Image avatar src=emptyThumbnail />
                  )
                  <h1>post.node.title</h1>
                </div>
                <p>post.node.excerpt</p>
              </Segment>
            ))
        </div>
      </Layout>
      <Contact />
    </div>
  )


export default ClientProjectsIndexPage

【问题讨论】:

【参考方案1】:

愚蠢的我,我匆忙中似乎错过了它!

我仍然需要弄清楚为什么大多数特色图片没有被提取,但这里是标签查询......

export const pageQuery = graphql`
  query 
    allWordpressPage 
      edges 
        node 
          id
          title
          excerpt
          slug
        
      
    
    allWordpressPost 
      edges 
        node 
          title
          excerpt
          slug
          featured_media 
            source_url
          
          categories 
            name
          
          tags 
            name
          
        
      
    
  
`

【讨论】:

我已经就特色图片问题提出了错误请求。这可能是 wordpress 方面的问题,但在管理面板中一切似乎都是正确的。 github.com/gatsbyjs/gatsby/issues/23458

以上是关于如何在 Gatsby 中获取所有 Wordpress 帖子和显示标签的主要内容,如果未能解决你的问题,请参考以下文章

在 Gatsby 中使用 GraphQL 获取许多图像时如何保持 DRY

如何使用 react 或 Gatsby(whitout 窗口 || 文档)在 url 中处理(获取、设置)查询字符串

如何获取站点地图 Gatsby 的静态文件的更新/lastmod 值

如何使用 gatsby-transformer-remark 在 markdown 中获取自定义备注?

通过 GraphQL 和 Gatsby JS 从特定目录获取所有图像

如何从 Gatsby.js 中的 YAML 数组中获取图像