Home > Shopify Development > List all the posts on your site by category

How to List all the posts on your site by category

Sam Nguyen
Sam Updated: April 07, 2024

Share:

Drive 20-40% of your revenue with Avada
avada email marketing

It’s common to show a list of posts arranged by categories on your homepage so that your customers can easily see all of your [posts] in different topics. It is essential for you to read carefully this instructional writing on How to list all posts on your site by category if you want to make this list on your own page.

How to list all posts on your site by category

Step 1: How to create a layout

Before taking an official step on adding the code to list your posts in category on your site, you need to know How to create a layout that will show the posts.

In _layouts directory, create a new file called home.html and add the following logic:


---
layout: default
---

{{ content }}
<ul class="myposts">
{% for post in site.posts %}
    <li><a href="{{ post.url }}">{{ post.title}}</a>
    <span class="postDate">{{ post.date | date: "%b %-d, %Y" }}</span>
    </li>
{% endfor %}
</ul>

Step 2: Create blog.md

Then, in your root directory, create a file called blog.md and specify the home layout:


---
title: Blog
layout: home
---

From that, contents of blog.md will be pushed into the {{ content }} tag in the home layout which will be pushed into the {{ content }} tag of the default layout.

Step 3: Generate post list

Now, take a step on adding the code to create a list of posts in category on your website.

If site.post directory helps you show all your posts, site.categories file will allow you arrange your posts in categories on your page. In this file, each item is an array with two elements. The first element in the array is the category name, the second element is a list of the posts in that category. Take a look at this following code and add it to your file.


...
{% for category in site.categories %}
  <h2>{{ category[0] }}</h2>
  <ul>
    {% for post in category[1] %}
      <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
  </ul>
{% endfor %}
...

Your installation process is completed and your customers can see all your posts in categories from now.

Conclusion

It is extremely simpler for your customers to see all of your posts right on your website, especially in each category. With some very basic steps above, we hope that this post brings useful information in your web development process. Keep following us in next informative tutorials to get interesting things. Thank you for reading!


Sam Nguyen is the CEO and founder of Avada Commerce, an e-commerce solution provider headquartered in Singapore. He is an expert on the Shopify e-commerce platform for online stores and retail point-of-sale systems. Sam loves talking about e-commerce and he aims to help over a million online businesses grow and thrive.

Stay in the know

Get special offers on the latest news from AVADA.