【发布时间】:2020-02-03 15:50:17
【问题描述】:
如何让 Shopify 将博客文章从最旧到最新排序?
现在最新的帖子在顶部。它不适用于讲述故事的博客。当然,你必须从乞讨者那里读到一个故事。
其他一些博客必须按默认顺序排序 - 从最新到旧。 IE。最新的顶部。
问:如何对部分博客进行 Old 优先排序?
【问题讨论】:
如何让 Shopify 将博客文章从最旧到最新排序?
现在最新的帖子在顶部。它不适用于讲述故事的博客。当然,你必须从乞讨者那里读到一个故事。
其他一些博客必须按默认顺序排序 - 从最新到旧。 IE。最新的顶部。
问:如何对部分博客进行 Old 优先排序?
【问题讨论】:
这取决于博客文章的数量。
有 3 种方法。
您可以覆盖文章分页并反转循环。
例子:
{% paginate blog.articles by 9999 %}
{% for article in blog.articles reversed %}
...
{% endfor %}
{% endpaginate %}
文章数量越大,DOM加载速度越慢。
因此,如果您有 1000 多篇文章,这不是一个好的解决方案。
您可以注册一个私有应用程序,并且只设置Store content like articles, blogs, comments, pages, and redirects 读取权限,并且所有内容都将被禁用。
然后您需要请求以下 URL:https://API_KEY:API_PASS@STORE.myshopify.com/admin/api/2020-01/blogs/BLOG_ID/articles.json?limit=250(如果您有超过 250 篇文章,请乘以)
并反转结果数组。
如果你有很多文章,这个解决方案又不是很好。
最好的方法是在此处使用 StoreFront GraphQL API,您可以在此处反转结果。
查询示例:
{
blogByHandle(handle:"news"){
articles(first: 50, reverse: true){
edges {
node {
title
}
}
}
}
}
这样,您将保持分页完好无损(因为 GraphQL 返回可用于分页的 Cursor),并且您将请求保持在最低限度。
【讨论】:
blog.sort.liquid 并仅通过将 view 参数添加到 URL 的末尾来切换到它。示例/blogs/news?view=sort。是的,第一个会有分页问题,但你可以用一些 Javascript 来解决这个问题。
我实际上已经制作了一个应用程序,可以将博客拖放到您想要的位置。这是 Shopify 应用的链接:Article Organizer Pro
【讨论】: