Search code examples
expressionenginetaxonomyexpressionengine3

ExpressionEngine & Taxonomy 3 - How to split nodes into blocks of 5?


I am using ExpressionEngine 2.10.3 and also Taxonomy 3 plugin. I have the following code which, when run, returns the 15 nodes I have set up:

<div class="col-md-4">
    {exp:taxonomy:nav tree_id="1" display_root="no" root_node_id="2"}
        <li>
            <a href="{node_url}">{node_title}</a>
        </li>
    {/exp:taxonomy:nav}
</div>

What I would like to do is after every 5 entries, end the current <div> and start a new col-md-4. Usually, I would use {switch} and I have tried it like this:

<div class="col-md-4">
    {exp:taxonomy:nav tree_id="1" display_root="no" root_node_id="2"}
        <li>
            <a href="{node_url}">{node_title}</a>
        </li>
        {switch='||||</div><div class="col-md-4">'}
    {/exp:taxonomy:nav}
</div>

But it doesn't work at all, instead it just prints out {switch='||||'}

Is there any way of doing what I'm trying to do?


Solution

  • If you're on 2.7.1 or greater and your taxonomy:nav has the nav_count variable, use the modulo operator. Instead of your {switch...} thing, put

    {if nav_count % 5 == 1}
      </div><div class="col-md-4">
    {/if}
    

    If you end on an modulo-5 count, though, you're going to have an empty div....