从storefront上的Shopify获取博客JSON,并可能通过标记进行过滤
我需要从我的店面获取JSON格式的博客文章,因为在任何单页请求中,您可以获取的文章数量有限,只有50篇。一个额外的好处是能够根据标签过滤文章 可以通过AJAX API从Shopify店面获取JSON,但仅限于从storefront上的Shopify获取博客JSON,并可能通过标记进行过滤,shopify,Shopify,我需要从我的店面获取JSON格式的博客文章,因为在任何单页请求中,您可以获取的文章数量有限,只有50篇。一个额外的好处是能够根据标签过滤文章 可以通过AJAX API从Shopify店面获取JSON,但仅限于产品和购物车。我知道你可以为其他任何东西创建一个替代模板,但是你如何为博客创建这个模板呢 我已经试过了,但不起作用: https://domain.myshopify.com/admin/blogs/blog_id/articles.json您是否尝试过低于终点 {tag_name} 在1调
产品
和购物车
。我知道你可以为其他任何东西创建一个替代模板,但是你如何为博客创建这个模板呢
我已经试过了,但不起作用:
https://domain.myshopify.com/admin/blogs/blog_id/articles.json
您是否尝试过低于终点
{tag_name}
在1调用中,您最多可以获得250个对象,您需要通过限制,如下所示
你试过低于终点吗 {tag_name} 在1调用中,您最多可以获得250个对象,您需要通过限制,如下所示
你说的是店面,但你给出的是管理员API的URL。如果不使用GraphQL或RESTAPI,就不能从店面请求管理员 液路 如果不覆盖店面上的页码,您将受到50篇文章的限制 但是如果你覆盖它,你可以得到你想要的。(请记住,项目池越大,DOM加载的时间就越长) 例如:
{% paginate blog.articles by 9999 %}
{% for article in blog.articles %}
{% endfor %}
{% endpaginate %}
您可以创建一个单独的blog模板,并使用AJAX请求它,还可以在末尾添加标记
因此,如果您创建一个名为blog.ajax.liquid
的博客模板,您的请求将是这样的:/blogs/news/taged/featured?view=ajax
,它将返回由标记featured
过滤的新模板的html
图形方式 另一种方法是使用店面GraphQL来获取文章 您需要创建一个私人应用程序,并允许
阅读文章、博客和评论等内容
,才能使用它
查询示例:
{
blogByHandle(handle:"news"){
articles(first: 50, query:"tag:featured") {
edges {
node {
title
}
}
}
}
}
如果这将返回50篇文章标题,其中包含一个名为featured
的标记,您当然可以添加更多您希望查询返回的字段
RESTAPI
另一种方法是使用RESTAPI
你仍然需要创建一个私人应用,但你必须只允许博客和文章阅读权限,不允许写作权限。此外,应禁用所有其他权限,以便您不允许其他人修改您的存储数据
AJAX url将是这样的:https://API_KEY:API_PASSWORD@YOUR_STORE.myshopify.com/admin/api/2020-01/blogs/BLOG_ID/articles.json?tag=featured
我不推荐这种方法,但它仍然有效
从这里你可以选择你想走的路。你谈论店面,但你给出的是管理员API URL。如果不使用GraphQL或RESTAPI,就不能从店面请求管理员 液路 如果不覆盖店面上的页码,您将受到50篇文章的限制 但是如果你覆盖它,你可以得到你想要的。(请记住,项目池越大,DOM加载的时间就越长) 例如:
{% paginate blog.articles by 9999 %}
{% for article in blog.articles %}
{% endfor %}
{% endpaginate %}
您可以创建一个单独的blog模板,并使用AJAX请求它,还可以在末尾添加标记
因此,如果您创建一个名为blog.ajax.liquid
的博客模板,您的请求将是这样的:/blogs/news/taged/featured?view=ajax
,它将返回由标记featured
过滤的新模板的html
图形方式 另一种方法是使用店面GraphQL来获取文章 您需要创建一个私人应用程序,并允许
阅读文章、博客和评论等内容
,才能使用它
查询示例:
{
blogByHandle(handle:"news"){
articles(first: 50, query:"tag:featured") {
edges {
node {
title
}
}
}
}
}
如果这将返回50篇文章标题,其中包含一个名为featured
的标记,您当然可以添加更多您希望查询返回的字段
RESTAPI
另一种方法是使用RESTAPI
你仍然需要创建一个私人应用,但你必须只允许博客和文章阅读权限,不允许写作权限。此外,应禁用所有其他权限,以便您不允许其他人修改您的存储数据
AJAX url将是这样的:https://API_KEY:API_PASSWORD@YOUR_STORE.myshopify.com/admin/api/2020-01/blogs/BLOG_ID/articles.json?tag=featured
我不推荐这种方法,但它仍然有效
从那里你可以选择你想走的路。答案很好。谢谢你深入研究。这确实比Shopify文档要好。我用你推荐的液体页面解决了这个问题。请记住,如果你有很多帖子(1000+以上),这个请求可能会在时间上增加很多(最多5-10秒甚至更多)。其他方法没有这个问题,但需要了解GraphQL或RESTAPI。祝你好运回答得很好。谢谢你深入研究。这确实比Shopify文档要好。我用你推荐的液体页面解决了这个问题。请记住,如果你有很多帖子(1000+以上),这个请求可能会在时间上增加很多(最多5-10秒甚至更多)。其他方法没有这个问题,但需要了解GraphQL或RESTAPI。祝你好运这是可行的,但我的错误就在这个问题上。谢谢你的意见。这是可行的,但我的错误在问题中。谢谢你的意见。