如何通过Shopify GraphQL获取博客文章的Handle?
获取Shopify博客文章Handle的方法
嘿,你说得没错,Shopify博客文章的Handle确实存在于GraphQL API中,只是可能你在查询的时候没把它明确列出来,或者没找对正确的查询结构~
下面给你两种靠谱的获取方式:
1. 直接在GraphQL查询中请求handle字段
Shopify的BlogArticle类型本身就包含handle字段,你只需要在查询时指定它就行。举个例子,如果你想批量获取某个博客下所有文章的Handle,可以用这样的查询:
query FetchBlogArticlesWithHandle { blogByHandle(handle: "your-blog-handle") { # 替换成你的博客Handle articles(first: 20) { edges { node { handle # 这里就是你要的文章Handle title url } } } } }
如果是单独获取某一篇文章的Handle,也可以用articleByHandle查询(前提是你已经知道文章的Handle):
query FetchSingleArticleHandle { articleByHandle(handle: "your-article-handle") { handle title url } }
2. 从文章的url字段解析Handle
正如你注意到的,文章的url是易读格式,结构一般是/blogs/{blog-handle}/{article-handle}。如果你已经拿到了url,可以通过字符串分割的方式提取最后一段,就是文章的Handle。比如在JavaScript里可以这么处理:
const articleUrl = "/blogs/news/how-to-use-shopify-graphql"; const handle = articleUrl.split("/").pop(); // 结果就是 "how-to-use-shopify-graphql"
不过更推荐第一种方法,直接查询handle字段更稳定,避免因为Shopify url结构变更导致解析出错。
内容的提问来源于stack exchange,提问作者Sandeep
相关产品推荐
相关产品推荐

