loops - 如何在 Shopify 液体中合并两个集合而不将其更改为数组?
问题描述
我正在尝试在将其呈现为液体之前对其进行分类,以便能够将所有已售罄的产品移至底部,并在它们重新入库后让它们返回其原始位置。
我之前尝试过直接过滤 forloop,将它分成两个具有相反标准的循环,但是分页有效地把它弄乱了,并且每页呈现我的逻辑,而不是在整个集合上。这意味着售罄的产品会出现在每个页面的底部。
在了解了这一点之后,我认为我最好的选择是创建两个集合并在分页和渲染之前将它们组合起来,然后根据新的排序集合对集合进行分页。分页不接受数组,这是我卡住的地方。这是我试图对集合进行排序的代码:
{% assign topcol = collection %}
{%- for product in topcol.products -%}
{% assign product = null %}
{%- if product.available or product.tags contains "_boost" -%}
{% assign product = product %}
{%- endif -%}{%- endfor -%}
{% assign bottomcol = collection %}
{% assign product = null %}
{%- for product in bottomcol.products -%}
{%- unless product.available or product.tags contains "_boost" -%}
{% assign product = product %}
{%- endunless -%}{%- endfor -%}
{% assign sortedcol = topcol | concat: bottomcol %}
如果我然后尝试
{%- paginate sortedcol.products by section.settings.products_per_page -%}
我收到错误消息“数组 'sortedcol.products' 不可分页。” 因为我把它做成了一个数组,而不是保留我相信的集合结构。
有一个更好的方法吗?我错过了什么吗?分裂?
解决方案
推荐阅读
- java - 在 Java 8 中使用方法引用时出现编译错误
- android - 如何在@Entity 的 primaryKeys 列表中设置 autoGenerate?
- git - gitlab-ci 中的增量更新
- java - 如何在 CSV 中添加由 Java 中的数据组成的列
- r - R save() 不产生任何输出但没有错误
- php - Laravel 迁移:无法添加外键约束
- python - 与 Numpy Array 相比,Numpy 矩阵内存大小低
- google-app-maker - 如何暂停应用程序制造商部署?
- vba - VBA - 基于附件文件名移动电子邮件
- visual-studio - Unity - 如何开始处理大型地形/地图?