Я создал несколько метаполей для сообщений в блоге и заполнил их. Я создаю витрину магазина Hydrogen Shopify и использую GraphQL для получения данных из этого блога/статьи. Но я не могу понять, как получить все метаполя. Похоже, что «метаполе» и «метаполя» возвращают только одно поле на основе ключа и пространства имен. Есть ли способ сделать больше одного?
query Blog($language: LanguageCode, $blogHandle: String!, $first: Int, $last: Int, $startCursor: String, $endCursor: String) @inContext(language: $language) {
blog(handle: $blogHandle) {
title
seo {
title
description
}
articles(
first: $first
last: $last
before: $startCursor
after: $endCursor
reverse: true
) {
nodes {
...ArticleItem
metafields(identifiers: {namespace: "custom", key: "misc_content_long_text_1"}) {
value
references {
edges {
node
}
}
}
}
pageInfo {
hasPreviousPage
hasNextPage
hasNextPage
endCursor
startCursor
}
}
}
}
fragment ArticleItem on Article {
author: authorV2 {
name
}
contentHtml
handle
id
image {
id
altText
url
width
height
}
publishedAt
title
blog {
handle
}
}
Мои метаполя включают в себя:
Я надеюсь, что мне не придется вызывать несколько запросов для их получения. ТИА
Вы можете добиться этого, используя псевдонимы метаполей. Вот официальные документы https://www.shopify.com/in/partners/blog/how-to-use-graphql-aliases
query Blog($language: LanguageCode, $blogHandle: String!, $first: Int, $last: Int, $startCursor: String, $endCursor: String) @inContext(language: $language) {
blog(handle: $blogHandle) {
title
seo {
title
description
}
articles(
first: $first
last: $last
before: $startCursor
after: $endCursor
reverse: true
) {
nodes {
...ArticleItem
misc_content_long_text_1 : metafields(identifiers: {namespace: "custom", key: "misc_content_long_text_1"}) {
value
references {
edges {
node
}
}
},
misc_text_field_2: metafields(identifiers: {namespace: "custom", key: "misc_text_field_2"}) {
value
references {
edges {
node
}
}
}
}
pageInfo {
hasPreviousPage
hasNextPage
hasNextPage
endCursor
startCursor
}
}
}
}
fragment ArticleItem on Article {
author: authorV2 {
name
}
contentHtml
handle
id
image {
id
altText
url
width
height
}
publishedAt
title
blog {
handle
}
}