I would like to know how I can create a page that contains all entries from a section e.g. 'news'. I want to divide the entries by their given category.

News (section)

Category 1:

  • entry in category 1
  • second entry in category 1
  • third entry in category 1

Category 2:

  • entry in category 2
  • second entry in category 2
  • third entry in category 2


Does anyone know the code for this? The categories are all in the same category group.

1 Answer 1


You can use .relatedTo(category)

{% for category in craft.categories.group('categoryName') %}
  {% for entry in craft.entries.section('news').relatedTo(category) %}
    <a href="{{entry.url}}">{{entry.title}}</a><br>
  {% endfor %}
{% endfor %}

You can check for length if you don't want to show categories which aren't related to any entry.

See the relations documentation

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.