22

I have a jekyll website and I have a category (called photo) and I wanted to create a separate layout for a page that would list just the posts that were in the photo category. I also want to keep posts with the photo category out of the main index page.

Mark Szymanski
  • 56,590
  • 24
  • 70
  • 87

3 Answers3

34

All categories are available within the site object, access the posts of a category via site.categories.photo so your loop would look like this

{% for post in site.categories.photo %}
    # render the photo post html
{% endfor %}
David Burrows
  • 5,217
  • 3
  • 30
  • 34
24

I just used an {% unless %} block in the main index page to make sure the post wasn't a photo. Example:

{% unless post.category == "photo"%}
    {% comment %} List posts... {% endcomment %}
{% endunless %}

And I used the same thing for showing only photos. Just with an if instead of unless.

Mark Szymanski
  • 56,590
  • 24
  • 70
  • 87
4

The category is case sensitive as well. If your category is photo then it will look like this:

{% for post in site.categories.photo %}
    # render the photo post html
{% endfor %}

If your category is Photo then it will look like this:

{% for post in site.categories.Photo %}
    # render the photo post html
{% endfor %}

Just a quick detail that I tripped up on my build so I thought I would share.

Trevor Glass
  • 390
  • 5
  • 10