【问题标题】:Shopify tablerow loop exiting earlyShopify tablerow 循环提前退出
【发布时间】:2012-11-01 22:14:09
【问题描述】:

我正在循环浏览我的首页产品集合并生成一个表格。在最后一行,我需要在第一个表格单元格中放置一些静态内容。我已经能够做到这一点,但由于某种原因,循环在它完成后停止。有谁知道为什么?

  {% tablerow product in collections.frontpage.products cols: 2 %}
    {% if tablerowloop.col_first and tablerowloop.last %}
      <img src="{{'box.png' | asset_url}}">
    {% else %}
      <div class='featured-product'>
        <img src="{{ product.images[1] | product_img_url: 'medium' }}">
        <p>{{ product.title }}</p>
      </div>
    {% endif %}
  {% endtablerow %}

这里是网站:https://hodkiewicz-zieme-and-hirthe180.myshopify.com/

【问题讨论】:

    标签: html css shopify liquid


    【解决方案1】:

    tablerowloop.last 只为表格的最后一个单元格(即集合的最后一个产品)返回 true,而不是最后一行。相反,您需要检查集合末尾的cols 内的索引是否是第一列,如果它是第一列,则它必须是最后一行。

    {% tablerow product in collections.frontpage.products cols: 2 %}
      {% assign x = tablerowloop.length | minus:2 %}
      {% if tablerowloop.col_first and tablerowloop.index > x %}
        <img src="{{'box.png' | asset_url}}">
      {% else %}
        <div class='featured-product'>
          <img src="{{ product.images[1] | product_img_url: 'medium' }}">
          <p>{{ product.title }}</p>
        </div>
      {% endif %}
    {% endtablerow %}
    

    【讨论】:

    • 好的,我理解第一部分,tablerowloop.last 只返回表格的最后一个单元格。但是,这对我来说没有意义,因为它正确输出静态内容,然后循环过早终止。
    • 您的首页收藏只有 5 个产品,因此两列表格的最后一行只有一个产品。由于 if 条件匹配,因此该产品将替换为 box.png 资产图像。它不会过早死亡,但也许您希望在 box.png 图像之后也显示产品,在这种情况下,您可以将 else 块移出 if 条件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多