Category Templates
The category body template is the product-listing layout. A page gets it when its Body Template is left blank on a Category or Brand page, or when category is typed in. For how to choose or change a template, see Choose a page template.
Pages that use it
| Page type | How it gets category | Live, 20 October 2026 |
|---|---|---|
| Category pages | Body Template blank | 173 |
| Brand pages | Body Template blank | 84 |
| Promotion pages | category typed in | 1 active (/promotions/rhino-rack-november/), 1 inactive |
Parts-finder pages under /parts-finder/ | Matches the other parts-finder pages | Not in the content export. Live pages render this layout |
What the page shows, top to bottom
- Heading. The SEO Page Heading, or the page Name if that is blank.
- Description 1 and the Alt image 1, side by side. Only when Description 1 has content.
- Related cards. Up to 4. Only when Description 1 and Label 1 are both filled.
category_adbanner. Shown on every page of results.- Filter sidebar and product area. On page 1 of the results only, the product area opens with a carousel of blank-group text adverts (adverts with no group set), then a “Featured products” row of blank-group product adverts.
- Product list. Sort menu, product count and page numbers. With no products assigned, it says “This category is empty!“.
- Description 2. Very bottom, after the product list. Only when filled.
The page’s main image and Short Description 1 don’t show on this template. Label 2 and Label 3 aren’t used either. On a Promotions page Label 3 still matters for the /promotions list.
Description 1 and Alt image 1
Description 1 sits in a two-thirds-width column with Alt image 1 beside it. Leave Description 1 blank and the whole block goes: no description, no image, no related cards.
Keep Description 1 short, because it sits above the products. The earlier version of this guide set a 250-word limit. The theme doesn’t enforce one.
Upload Alt image 1 at 450 × 450, square, as on every content page. On this template it’s cropped to 3:2 (wide), filling the column, so keep the subject in the middle where the crop won’t cut it off.
Alt image 1 is also used on other pages, cropped differently: as the card image when another page links here, in the desktop menu panel (3:2), and as a brand tile in the Connect menu (3:1). So an Alt image 1 is worth adding even without a Description 1. See Edit the menus and the image section of Choose a page template.
Related cards
The Related Content picker (called “Related Categories” in older guides) links this page to other content pages. On this template it adds a row of up to 4 cards below the description, before the products. Each card shows the related page’s Alt image 1 (a placeholder if it has none), its name, the first two lines of its Short Description 1, and a “Read More” link.
To switch the cards on, put any text in Label 1. It isn’t a true/false field: any text counts, and the text itself never shows. Empty Label 1 means no cards.
Adverts on category pages
Three kinds of advert appear on this template. For the fields each one reads, image shapes and how to set Group and Location, see Adverts and content zones.
| Advert | Where it shows | Limit |
|---|---|---|
Text adverts in group category_ad | Wide banner above the sidebar and products, on every page of results. Rotates on its own, no arrows or dots. Cropped to 5:1 on desktop, 3:1 on tablets, 2:1 on phones, keeping the left edge | 10 |
| Text adverts with Group left blank | Carousel at the top of the product area, page 1 only. Shown whole in a 48:11 frame. Arrows and dots only with 2 or more | 10 |
| Product adverts with Group left blank | ”Featured products” row above the product list, page 1 only | 8 |
These adverts also show on promotion pages, because those use this template. If promotion pages move to promotions, they lose them.
Description 2
Description 2 prints at the very bottom of the page, full width, after the product list and page numbers. It sits inside the #_Custom-page-content wrapper, so it’s the field to use for content with its own styling. Description 1 is outside that wrapper. Description 2’s wrapper is a Bootstrap row, so wrap the whole field in one <div class="col-12"> or its paragraphs may sit side by side. See Custom CSS in content.
Description 3 isn’t used on this template.
For developers
Theme repo Altapac-ReDev, branch development, paths under src/templates/:
cms/category.template.html- Heading:
url_info name:'page_heading'withcontent_namedefault (105). - Description 1 block:
[%if [@content_description1@]%](109-217). Alt image 1 isimg._services-content-image,aspect-ratio: 3/2; object-fit: cover(58-65, 116). - Related cards:
[%if [@content_label1@]%]nested inside the Description 1 test (120),list type:'content' filter:'related_content=[@content_id@]' limit:'4'(121). Card image is the related page’salt_1withdefault_product.giffallback (199); text iscontent_short_description1with a 2-line clamp (176-182, 204). category_ad:advert type:'text' template:'banner' limit:'10' ad_group:'category_ad'with its own*body(223-265). Aspect ratios 5/1, 3/1 (577-766px), 2/1 (576px and under) (229-242).- Page-1-only blank-group adverts:
[%if ![@form:pgnum@] OR [@form:pgnum@] eq '1'%](275). Textadvert template:'carousel' inherit:'n' limit:'10' ad_group:''(276), usingthumbs/advert/carousel.template.html(48/11,object-fit: contain). Productadvert type:'product' limit:'8' inherit:'n' ad_group:''(303). - Duplicate id: both carousels use
id="homepageCarousel"(225, 278). Both also write indicator<li>s tosite_value id:'counter', which the second carousel loads into its indicators (255-257, 281), socategory_adslides add dots to the blank-group carousel. - Product list:
thumb_list type:'products' limit:'[@config:THUMB_LIMIT@]'(314), empty message in*ifempty(435-442). - Description 2 in
#_Custom-page-content class="col-12 row"(448-452).
- Heading:
headers/template.html:267-276: whencurrent_page_typeiscategory, Alt image 1 is set as the background ofdiv.category-banner. No CSS anywhere in the repo sizes.category-banner, so it renders 0px tall (measured live on/towbars-towing/).cms/includes/sidebar.template.html: filter sidebar loaded at line 272.- Parts-finder type code:
products/template.html:215usesparts-finder;cms/parent-category.template.html:320-321usespart-finder. - Live template use:
Altapac-Content/pages/**/meta.json(pulled 2026-10-20). Category (type 1) and Brand (type 10) pages have blank Body Template; both Promotions (type 16) pages havecategory.