In Shopify, how do I show a list of tags followed by the number of products with that tag?
Example: Black(12), Blue(10).
Currently the code looks like this, but it doesn’t work.
JavaScript
x
<ul>
{% for tag in collection.all_tags %}
<li>
<a href="https://mystore.myshopify.com/collections/all/{{ tag }}">
{{ tag }}
</a>
({{ tag.products_count }})
</li>
{% endfor %}
</ul>
Advertisement
Answer
products_count
is an attribute of collection
, not tag
.
I believe you would need to manually loop through the products and count the number with the specified tag.
For example:
JavaScript
{% assign collection = collections.all %}
<ul>
{% for tag in collection.all_tags %}
{% assign products_count = 0 %}
{% for product in collection.products %}
{% if product.tags contains tag %}
{% assign products_count = products_count | plus: 1 %}
{% endif %}
{% endfor %}
<li>
<a href="https://mystore.myshopify.com/collections/all/{{ tag }}">
{{ tag }}
</a>
({{ products_count }})
</li>
{% endfor %}
</ul>
See these similar discussions on the Shopify forums: