Gatsby 和 WordPress graphQL:按 id 查询多个图像

Posted

技术标签:

【中文标题】Gatsby 和 WordPress graphQL:按 id 查询多个图像【英文标题】:Gatsby and WordPress graphQL : query multiple images by id 【发布时间】:2021-08-14 01:35:30 【问题描述】:

我正在尝试在 Gatsby 上重新创建一个 WordPress 滑块

我想看看有没有办法通过id查询多张图片。我不想使用很多查询,而是使用一组 ID 的单个查询 - 当然如果可能的话:-)

例如,如果我想要 WordPress 库的 110,200,250,300,400 个媒体,查询会是什么?

将图像添加到我的 src 文件夹是否更有效?

谢谢!

【问题讨论】:

玩...游乐场? 【参考方案1】:

我正在为类似的事情而苦苦挣扎,这个查询对我有用:

query MyQuery 
    mediaItems(where: in: [10, 12, 14]) 
        edges 
            node 
                sourceUrl
                srcSet
            
        
    

【讨论】:

【参考方案2】:

考虑到您正在运行最新的插件版本


回答 1

您的查询可能如下所示:

query ImageQuery 
  allWpMediaItem(filter: databaseId: in: [390, 164]) 
    nodes 
      localFile 
        childImageSharp 
          gatsbyImageData(layout: CONSTRAINED, formats: [AVIF, WEBP, JPG])
        
      
    
  

显然,您必须根据需要调整图像选项。


回答 2

如果您确实想定义一组图像以在自定义查询下返回,则需要扩展 WPGraphQL 架构并返回图像数组。我能想到的最简单的选择是创建一个自定义帖子类型Slider 并通过高级自定义字段添加一个转发器字段。由于 WPGraphQL 扩展支持 ACF,因此将其添加到架构中非常简单。您只需要将 Post Type 添加到架构中。在此处查看文档:https://www.wpgraphql.com/docs/custom-post-types/

【讨论】:

以上是关于Gatsby 和 WordPress graphQL:按 id 查询多个图像的主要内容,如果未能解决你的问题,请参考以下文章

在“gatsby-source-graphql”标头选项中异步生成承载令牌

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

如何从 Gatsby WordPress 网站的页面内容查询中排除作者和日期

WORDPRESS-GATSBY 部署失败

在 Gatsby 和 GraphQL 中的 wordpress 中过滤 ACF Post Object-field

GraphQL 检索特定块的数据 - Gatsby + Wordpress