Show a list of items in a category, grouped by tag name

Suppose you have a category page, which gets the category passed in via the URL. (It must be a page of type "category"). It's simple enough to list out all the items of a certain type in that category:

<w:kb:item:each taxonomy="current" type="my_items">
    (code to display an item)

But perhaps you want to group the items by tag, and show the tag subhead only if there are items of that category, with that tag. Here's the code:

<!-- capture the current category into a variable for later use -->
<w:var name='cat-name'><w:taxonomy:name /></w:var>
<h1>Category: <w:var name='cat-name' /></h1>
<!-- loop through the tags -->
<w:taxonomy:each name='tags'>
  <!-- display name of tag term and its items, if there are items of this type and with this tag -->
  <w:kb:item:if_items taxonomy='current&&categories:{{cat-name}}' type='my_items'>
    <h2><w:taxonomy:name /></h2> 
    <w:kb:item:each taxonomy='current&&categories:{{cat-name}}' type='my_items'>
      (code to display an item)

The key trick here is to capture the current category, passed from the URL and available as "current" until entering the taxonomy:each iterator, into a variable. Then you can access it inside that iterator.

Have more questions? Submit a request


Please sign in to leave a comment.
Powered by Zendesk