从店面上的Shopify获得博客Json,可能还会通过标签从过滤获得博客Json [英] Getting Blog JSON from Shopify on storefront and possibly filter by tag
问题描述
我需要从我的店面获取JSON格式的博客文章,因为您在任何单个页面请求中可以获取的文章数量限制为50篇。奖金将是能够过滤基于标签的文章。
可以通过Ajax API从Shopify店面获取JSON,但仅限于products
和cart
。我知道您可以为其他所有内容创建备用模板,但如何为博客创建该模板?
我试过了,但不起作用:
https://domain.myshopify.com/admin/blogs/blog_id/articles.json
推荐答案
您谈论的是店面,但您提供的是管理员API URL。如果不使用GraphQL或睡觉API,您无法从店面请求管理员!
液体方式
如果您不覆盖店面上的分页,则您的文章限制为50篇。
但是如果您覆盖它,您可以想要多少就得到多少。(请记住,文章池越大,加载DOM的时间就越长)
示例:
{% paginate blog.articles by 9999 %}
{% for article in blog.articles %}
{% endfor %}
{% endpaginate %}
您可以创建单独的博客模板并使用Ajax请求它,还可以将标记添加到末尾。
因此,如果您创建名为blog.ajax.liquid
的博客模板,您的请求将类似于:/blogs/news/tagged/featured?view=ajax
,它将返回由标记featured
筛选的新模板的html。
GraphQL方式
另一种方法是使用Storefront GraphQL来获取文章。
您需要创建私人应用并允许Read content like articles, blogs, and comments
才能使用此应用。
查询示例:
{
blogByHandle(handle:"news"){
articles(first: 50, query:"tag:featured") {
edges {
node {
title
}
}
}
}
}
这将返回50篇文章标题,其中有一个名为featured
的标记,您当然可以添加更多希望查询返回的字段。
睡觉接口
另一种方式是使用睡觉接口
您仍然需要创建私人应用程序,但您必须只允许博客&;文章阅读权限,不允许写入权限。此外,应该禁用所有其他权限,以便您不允许其他人修改您的存储数据。
Ajax URL如下所示:https://API_KEY:API_PASSWORD@YOUR_STORE.myshopify.com/admin/api/2020-01/blogs/BLOG_ID/articles.json?tag=featured
我不推荐使用此方法,但它仍然有效。
您可以从那里选择要走的路。
这篇关于从店面上的Shopify获得博客Json,可能还会通过标签从过滤获得博客Json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!