Gatsby GraphQL + WordPress 中不存在字段(但在本地工作)

Posted

技术标签:

【中文标题】Gatsby GraphQL + WordPress 中不存在字段(但在本地工作)【英文标题】:Field doesn't exist in Gatsby GraphQL + WordPress (but works locally) 【发布时间】:2019-12-05 10:57:42 【问题描述】:

我正在使用 WordPress、Gatsby + GraphQL 来构建博客。昨天一切正常,我得到了 features_media 字段,但今天它刚刚停止工作,我收到这个错误,告诉我它无法查询该字段。 (WordPress 网站托管在 Bluehost 上)。

错误

wordpress__wp_media fetched : 0

Cannot query field "featured_media" on type "wordpress__POST"

GraphiQL 内部确实没有 features_media 字段,但是当我使用本地 Wordpress 网站时,它可以正常工作。

gatsby-config.js 文件

    
      resolve: 'gatsby-source-wordpress',
      options: 
        baseUrl: process.env.WORDPRESS_URL,
        protocol: 'http',
        hostingWPCOM: false,
        useACF: false,
        auth: 
      ,
    ,

GraphQL 查询:(这在本地工作)

      featured_media 
        alt_text
        localFile 
          childImageSharp 
            fluid(maxWidth: 600, quality: 100) 
              ...GatsbyImageSharpFluid
              presentationWidth
            
          
        
      

我没有太多使用 Gatsby + WordPress 制作博客的经验。

我尝试了什么:

我将 Better REST API Featured Images 插件添加到了我的 WordPress 网站,但我只返回了 source_url。 我删除了 Bluehost 上的 WordPress 站点并创建了一个新站点,之后您可以编辑或添加帖子,但如果您删除任何帖子,则会引发相同的错误。

【问题讨论】:

【参考方案1】:

您是否尝试在更改 sourceURL 时使用 gatsby clean 删除缓存?

不确定这是不是问题,但是当我更改源 URL 时 Gatsby 在我的 GraphQL 中找不到数据时,此选项可以解决我的大部分问题。

希望对你有所帮助!

【讨论】:

【参考方案2】:

这看起来与 gatsby-source-wordpress 插件中的一个持续存在的问题有关,此处描述:Troubleshooting for gatsby-source-wordpress

基本上,一些图像在 Wordpress 中与某个 post_parent 耦合,当它们的 post_parent 对象变得不可访问时,它们可能变得不可访问。

建议的解决方案是在您的 Wordpress 数据库中手动编辑 post_parent 并将其设置为 0,以便 post_parent 上的更改不会影响您的图像的可访问性。

还有一个尊敬的change request for Wordpress。

【讨论】:

以上是关于Gatsby GraphQL + WordPress 中不存在字段(但在本地工作)的主要内容,如果未能解决你的问题,请参考以下文章

gatsby-source-graphql + ACF 字段未显示

使用 gatsby-source-graphql 时,GraphIQL 资源管理器未在 Gatsby 中显示

gatsby-source-prismic-graphql 查询结构

单个 GraphQL 查询中的多个源 (Gatsby)

“无法读取未定义的属性‘节点’” - Gatsby/GraphQL/Prismic

gatsby-source-graphql 好像没有传cookie header,怎么解决?