I have a best sellers collection so I can display best sellers on my homepage. I want to hide it from the collections list page.
Hi @2Hops
Please follow these steps:
- From your Shopify admin, go to Online Store > Themes.
- Find the theme that you want to edit, click the … button to open the actions menu, and then click Edit code.
- Open the file layout/theme.liquid and add the following snippet before .
- Save file and check. That’s it.
Was my response useful?
Click Like to let me know!
Was your query resolved? ✓ Mark it as a Resolved Solution
Hi @2Hops
You can do that by adding this code to theme.liquid file, after in Online Store > Themes > Edit code
The code works very well. However when landing on the collection page the ‘best sellers’ very briefly appear, it is a small thing but is there a way to fix that?
@2Hops Yes, the above solution will execute after loading the page.
To remove it completely, I need to update Liquid code. Would you make me access your codebase?
Hi @2Hops ,
May I suggest to update code these steps:
- Go to Store Online-> theme → edit code
- Sections/main-list-collections.liquid
- Replace content of this file by code below:
{{ 'component-card.css' | asset_url | stylesheet_tag }}
{{ 'section-collection-list.css' | asset_url | stylesheet_tag }}
#
{{ section.settings.title }}
{%- liquid
case section.settings.sort
when 'products_high', 'products_low'
assign collections = collections | sort: 'all_products_count'
when 'date', 'date_reversed'
assign collections = collections | sort: 'published_at'
endcase
if section.settings.sort == 'products_high' or section.settings.sort == 'date_reversed' or section.settings.sort == 'alphabetical_reversed'
assign collections = collections | reverse
endif
assign moduloResult = 28 | modulo: section.settings.columns_desktop
assign paginate_by = 30
if moduloResult == 0
assign paginate_by = 28
endif
-%}
{%- paginate collections by paginate_by -%}
{%- for collection in collections -%}
{% unless collection.handle == 'best-sellers' %}
- {% render 'card-collection',
card_collection: collection,
media_aspect_ratio: section.settings.image_ratio,
columns: 3
%}
{% endunless %}
{%- endfor -%}
{% render 'pagination', paginate: paginate %}
{%- endpaginate -%}
{% schema %}
{
"name": "t:sections.main-list-collections.name",
"class": "section",
"settings": [
{
"type": "inline_richtext",
"id": "title",
"label": "t:sections.main-list-collections.settings.title.label",
"default": "t:sections.main-list-collections.settings.title.default"
},
{
"type": "select",
"id": "sort",
"options": [
{
"value": "alphabetical",
"label": "t:sections.main-list-collections.settings.sort.options__1.label"
},
{
"value": "alphabetical_reversed",
"label": "t:sections.main-list-collections.settings.sort.options__2.label"
},
{
"value": "date_reversed",
"label": "t:sections.main-list-collections.settings.sort.options__3.label"
},
{
"value": "date",
"label": "t:sections.main-list-collections.settings.sort.options__4.label"
},
{
"value": "products_high",
"label": "t:sections.main-list-collections.settings.sort.options__5.label"
},
{
"value": "products_low",
"label": "t:sections.main-list-collections.settings.sort.options__6.label"
}
],
"default": "alphabetical",
"label": "t:sections.main-list-collections.settings.sort.label"
},
{
"type": "select",
"id": "image_ratio",
"options": [
{
"value": "adapt",
"label": "t:sections.main-list-collections.settings.image_ratio.options__1.label"
},
{
"value": "portrait",
"label": "t:sections.main-list-collections.settings.image_ratio.options__2.label"
},
{
"value": "square",
"label": "t:sections.main-list-collections.settings.image_ratio.options__3.label"
}
],
"default": "adapt",
"label": "t:sections.main-list-collections.settings.image_ratio.label",
"info": "t:sections.main-list-collections.settings.image_ratio.info"
},
{
"type": "range",
"id": "columns_desktop",
"min": 1,
"max": 6,
"step": 1,
"default": 3,
"label": "t:sections.main-list-collections.settings.columns_desktop.label"
},
{
"type": "header",
"content": "t:sections.main-list-collections.settings.header_mobile.content"
},
{
"type": "select",
"id": "columns_mobile",
"options": [
{
"value": "1",
"label": "t:sections.main-list-collections.settings.columns_mobile.options__1.label"
},
{
"value": "2",
"label": "t:sections.main-list-collections.settings.columns_mobile.options__2.label"
}
],
"default": "2",
"label": "t:sections.main-list-collections.settings.columns_mobile.label"
}
]
}
{% endschema %}
I came across this thread as trying to do the exact same thing, but with MULTIPLE collections being hidden, and your post @EBOOST got me on the right track, and then with some ChatGPT magic it helped me create the multiple logic as follows:
--------- CHATGPT AMEND -------
To hide multiple collections, you can use the contains filter in Liquid to check if the collection.handle exists in an array of collection handles. Here’s how you can update your code:
{%- assign hidden_collections = "best-sellers,summer-sale,another-collection-handle" | split: "," -%}
{%- for collection in collections -%}
{%- unless hidden_collections contains collection.handle -%}
- {% render 'card-collection',
card_collection: collection,
media_aspect_ratio: section.settings.image_ratio,
columns: 3
%}
{%- endunless -%}
{%- endfor -%}
Explanation:- Step 1:
- Create an array hidden_collections using assign and split.
- This array contains the handles of all the collections you want to hide.
- Step 2:
- Use unless hidden_collections contains collection.handle to check if the current collection’s handle is in the hidden_collections array.
- If it is, the unless block will skip rendering that collection.
This code will hide any collections listed in the hidden_collections array from appearing on the Collections Listing page.
Simple and works, you are a saviour

