比较液体中的两个阵列(Shopify)

时间:2019-05-18 15:12:51

标签: shopify liquid

不是开发人员,只是试图一起破解某些东西。在我们的Shopify网站中,有一些逻辑可以使用order.id标记特定博客中的新博客文章。因此,此博客的帖子每个帖子都带有一个order.id。

在客户记录(帐户)上,我创建了一个网格,该网格用于显示article.tags与customer.orders匹配的所有文章。

我为所有客户的订单ID制作了一个数组,并试图将此数组与article.tags数组进行比较,并仅显示两个数组中有匹配项的商品。

请帮助!

这是在customers / account.liquid上:

     <div class="table-wrap">
        <table class="full table--responsive">
          <thead>
            <tr>
              <th>POST NAME</th>
            </tr>
          </thead>
          <tbody>

             {% assign myorders = '' %}
        {% for order in customer.orders  %}
           {% capture myorders %}
              {{ myorders }} {{ order.id }}
           {% endcapture %}
            {% endfor %}

             {% for article in blogs.my-posts.articles  %}
         {% if article.tags contains myorders %}

                   <!--SHOW THE MATCHING ARTICLES HERE-->

                   <tr>
                     <td class="underline"><strong><a href="{{ article.url }}">{{ article.title | capitalize }}</a></strong></td>
                   <tr>

                 {% else %}

                     You have no posts.

                 {% endif %}
         {% endfor %}
          </tbody>
        </table>              
      </div>

1 个答案:

答案 0 :(得分:0)

一件事。使用捕获将连续覆盖您的上一个捕获,因此将其置于for循环中是有问题的。您只会得到客户订单中的最后一个订单。

因此,一开始,您可能需要构建一个字符串,该字符串将不断增长以包含订单ID。一旦有了该字符串,就可以使用它。然后,您将浏览文章。请注意,标记最好在数组中处理。因此,您将用逗号分割了该标签字符串,对于要循环遍历的数组中的每个结果标签,您都想查看该标签是否在先前构建的订单ID字符串中。

这一切都不是一件容易的事,但是如何建立成功并不明显。我的建议是在一小段代码中确定每种需求,然后将代码转储到Shopify呈现页面的源代码中。使用视图源查找结果,并检查结果是否正确。如果您只是像当前食谱那样搅动整个食谱,并且它在任何时候都无法像它所做的那样产生,您就不知道错误在哪里。通常只需在课程中使用注释,然后按ctrl + f即可找到线索,这很容易,例如单词“ testeefizzle”:

<!-- testeefizzle {{ dump crap here to see it }} -->

一旦您在一个小的基础上获得了荣耀,就会获得更多的代码。