Угу, принцип понял.
Но попробовал воткнуть — получилось ничего.
<!-- Отображение подгрупп данной группы, только если подгруппы есть и нет фильтра по меткам -->
<xsl:if test="count(selected_tags/tag) = 0 and count(//group[@parent=$parent_group_id]) > 0">
<xsl:choose>
<xsl:when test="@current_group_id = 0">
<div class="groups">
</xsl:when>
<xsl:otherwise>
<div class="groups sub">
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates select=".//group[@parent=$parent_group_id]"/>
</div>
</xsl:if>
То есть этот код ломает что-то, и вместо списка групп, потом списка товаров и прочего, выходит пустота.
А вот так прокатило:
<!-- Шаблон для групп товара -->
<xsl:template match="group">
<xsl:variable name="parent_id" select="@parent"/>
<div class="group" id="{path}">
<a href="{/shop/path}{fullpath}">
<xsl:choose><!-- вот тут вот -->
<xsl:when test="@current_group_id = 0">
<xsl:if test="image!=''">
<img src="{small_image}"/>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="image!=''">
<img src="{image}"/>
</xsl:if>
</xsl:otherwise>
</xsl:choose><!-- вот тут вот -->
<div class="label">
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</span>
<span class="meta">
<xsl:value-of select="count_all_items"/>
</span>
<xsl:value-of disable-output-escaping="yes" select="description"/>
<xsl:if test="count(group) > 1">
<xsl:apply-templates select="group" mode="sub_group"/>
</xsl:if>
</div>
</a>
</div>
</xsl:template>
А вообще, было бы просто прекрасно — добавлять классы тэгу body в зависимости от положения на сайте. В WP такое просто делается, а у вас как?