3

I need to loop through the 6 latest entries from 3 different structures. The problem is, the entries are located on different levels. One of the structures has entries on level 3, and the other two has entries on level 1.

Wobee
  • 328
  • 2
  • 9

1 Answers1

5

If you explicitly need only the entries at level 3, and those at level 1, I think combining two queries works best:

{# Get ids for all entries from the different structures and levels #}
{% set entriesAtLevelThree = craft.entries.section('level-3-section').level(3).limit(6).ids() %}
{% set entriesAtLevelOne = craft.entries.section(['level-1-section-1', 'level-1-section-2']).level(1).limit(6).ids() %}

{# Combine those IDs #}
{% set entryIdsCombined = entriesAtLevelThree | merge(entriesAtLevelOne) %}

{# Get all entries (so, no IDs this time), using your IDs #}
{% set allEntries = craft.entries.id(entryIdsCombined).limit(6).order('postDate DESC') %}

{% for entry in allEntries %}
    {# do your thing #}
{% endfor %}

You can, of course, cache this by wrapping it in {% cache %} tags.

Paul
  • 6,338
  • 12
  • 26