我正在为客户制作 Shopify 商店的侧边栏。它将显示特定集合中的所有项目。该集合称为精选,我的客户将使用 CMS 指定要在此处显示的项目。它可以显示 1 个项目、100 个项目,或者在精选集合中显示许多项目。
我有一些我认为会这样做的代码,但它什么也没显示。这是代码:
{% for product in collections.featureditems.products %}
{% if product.title == '<insert a title-id>' %}
<a href="{{product.url}}" onclick="return Showroom.showProduct('{{product.handle}}');"><img src="{{ product.featured_image | product_img_url: 'medium' }}"/></a>
{% endif %}
{% endfor %}
<script type="text/javascript">
var featuredProductDisplay = "";
var productCount = {{ collections.featureditems.products.size }};
window.onload = function() {
var product=new Array(productCount)
{% for product in collections.featureditems.products %}
product[{{forloop.index0}}]='<div class="featuredItem"><a href="{{product.url}}" onclick="return Showroom.showProduct("{{product.handle}}");\"><img src="{{ product.featured_image | product_img_url: "small" }}" /></a></div>';
featuredProductDisplay = featuredProductDisplay + product[{{forloop.index0}}];
{% endfor %}
document.getElementById('featuredContainer').innerHTML = featuredProductDisplay;
}
</script>
<div class="leftSideBar">
<h2>Featured</h2>
<div id="featuredContainer">
</div>
</div>
因此,此代码应该显示 Featured 类别中每个项目的图像,并且该图像应该是指向该项目页面的链接。但我很难过。有人知道我做错了什么吗?
所以理论上,它会运行循环,并将 HTML 代码构建到“product[{{forloop.index0}}]”变量中,然后将其附加到 featuresProductDisplay 的末尾。
完成循环后,featuredProductDisplay 的值应放入名为 featuresContainer 的 div 中。
当我现在运行它时,它不会在 div 中放置任何内容。
所以在某个地方,有些东西不起作用,我似乎无法弄清楚缺少什么。