shopify - 比较液体中的两个阵列 (Shopify)
问题描述
不是开发人员,只是想一起破解一些东西。在我们的 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>
解决方案
一样东西。使用 capture 会不断地覆盖你上次的捕获,所以把它放在 for 循环中是有问题的。您的结果只会是客户订单中的最后一个订单。
因此,首先,您可能希望构建一个将不断增长以包含订单 ID 的字符串。一旦你有了那个字符串,你也许可以使用它。然后,您将浏览文章。请注意,最好在数组中处理标签。因此,您将用逗号分割该标签字符串,并且对于您要循环的数组中的每个结果标签,您想查看该标签是否在您之前构建的订单 ID 字符串中。
这些都不是太难,但如何建立成功并不明显。我的建议是在一小段代码中确定每个需求,然后将代码转储到 Shopify 呈现的页面的源代码中。使用查看源查找结果,并检查它们是否正确。如果你只是像你现在的那样制作一个完整的食谱,并且它在任何时候都无法生产,就像它一样,你不知道错误在哪里。通常很容易在课程中使用注释,然后按 ctrl+f 来找到线索,比如“testeefizzle”这个词:
<!-- testeefizzle {{ dump crap here to see it }} -->
一旦你在一小块上获得荣耀,建立在它之上,用更多的代码。
推荐阅读
- linux - #!/bin/csh Cshell 检查查找结果 if else
- javascript - 我只想 console.log() 我的数据存在于我的 MongoDB 数据库中
- python - Python Pandas 数据框创建一个新列,其中包含另一列的减法
- python - Python中计算平均列的问题
- r - R:ggplot 上的自定义方程。带有第三个变量的 stat_function
- merge - 合并一个对象中的两个列表,包括长度检查
- http - 通过 curl 发出肥皂请求不起作用并且服务器返回“来自服务器的空回复”
- unity3d - 使用 Unity 着色器图的体积雾
- rust - 如何使用 Option::or 引用选项?
- git - 如果 PR 有合并冲突,则拒绝 Jenkins 工作