#wordpress #graphql #gatsby #advanced-custom-fields
Вопрос:
Я использую WordPress в качестве безголовой CMS для управления контентом на моем сайте Gatsby. Я использовал расширенные настраиваемые поля для создания настраиваемых полей, чтобы легко управлять полями и содержимым для викария и включения в мое приложение Gatsby. Все работало нормально, пока я не решил начать свой проект «Гэтсби» не так давно и не начал получать null
ошибки. Я зашел на страницу GraphQL на Гэтсби с этим адресом localhost:8000/___graphql
, чтобы запросить там свои данные, только чтобы увидеть, что все мои поля теперь возвращаются null
.
Я также посетил удаленную страницу wordpress, чтобы протестировать среду разработки GraphQL, но там все работает нормально. Я очистил кэш своего приложения Gatsby, но я все еще получаю ту же ошибку.
Вот пример такого запроса для пользовательского поля под названием homePage
query MyQuery {
wpPage {
homePage {
heroSubtitle
heroTitle
heroPlaystoreCtaText
heroImage {
localFile {
childImageSharp {
gatsbyImageData(width: 614, height: 477, quality: 100, placeholder: BLURRED)
}
}
altText
}
}
}
}
Все эти поля возвращают значение null, хотя все они работали 7 часов назад. Самое непонятное, что тот же самый точный запрос работает, когда я решил выполнить запрос через allWpPage
и nodes
. Почему он работает здесь, а НЕ работает над конкретным WpPage
запросом. Результат первого узла возвращает пустое значение, но второй узел возвращает правильные данные. Почему он вдруг перестал работать?
query MyQuery {
allWpPage {
nodes {
homePage {
heroSubtitle
heroTitle
heroPlaystoreCtaText
heroImage {
localFile {
childImageSharp {
gatsbyImageData(width: 614, height: 477, quality: 100, placeholder: BLURRED)
}
}
altText
}
}
}
}
}
Любая помощь будет признательна. Спасибо вам!!!.
Ответ №1:
Наконец я выяснил, что причина, по которой он не работал, заключалась в том, что я добавил новую страницу, которая переместилась вниз по домашней странице и заставила ее всегда возвращать значение null. Я изменил свой запрос на общий wpPages
запрос и отфильтровал по /
(Домашняя страница), что дало конкретные результаты для Домашней страницы. Вот запрос, который я использовал сейчас:
query HeroQuery {
hero: allWpPage(filter: {uri: {eq: "/"}}) {
edges {
node {
homePage {
heroSubtitle
heroTitle
heroPlaystoreCtaText
heroImage {
localFile {
childImageSharp {
gatsbyImageData(width: 614, height: 477, quality: 100, placeholder: BLURRED)
}
}
altText
}
}
}
}
}
}