Gatsby GraphQL + WordPress中不存在该字段(但可在本地使用)

时间:2019-07-27 10:21:58

标签: wordpress reactjs graphql gatsby wordpress-rest-api

我正在使用WordPress,Gatsby + GraphQL建立博客。昨天一切正常,我得到了featured_media字段,但是今天它停止了工作,并且出现此错误,告诉我它无法查询该字段。 (WordPress网站托管在Bluehost上。)

错误

wordpress__wp_media fetched : 0

Cannot query field "featured_media" on type "wordpress__POST"

在GraphiQL内部,确实没有feature_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网站并创建了一个新网站,之后您可以编辑或添加帖子,但是如果删除任何帖子,它将引发相同的错误。

2 个答案:

答案 0 :(得分:1)

这似乎与该gatsby-source-wordpress插件中的一个持续存在的问题有关,在这里进行了描述:Troubleshooting for gatsby-source-wordpress

基本上,某些图像在Wordpress中与特定的post_parent耦合,并且在它们的post_parent对象变得不可访问时变得不可访问。

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

还有一个值得尊重的change request for Wordpress

答案 1 :(得分:0)

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

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

希望对您有帮助!