如何在网站首页或分类页展示分类列表?

📅 👁️ 65

在安企CMS中管理和展示分类列表是网站内容组织的核心。无论是为了优化用户导航体验,还是为了提升搜索引擎的抓取效率,清晰地展示分类结构都至关重要。安企CMS提供了简洁而强大的模板标签,让您能够轻松在网站的首页、分类页或任何需要的地方,灵活地展示您的内容分类。

理解核心:categoryList 标签

安企CMS 模板系统中,用于获取分类列表的主要标签是 categoryList。这个标签能够帮助您按需提取网站的分类数据,并将其呈现在页面上。它的使用方式非常直观,通常以 {% categoryList 变量名称 with 参数 %} 开始,并以 {% endcategoryList %} 结束,中间则通过循环来遍历分类数据。

在使用 categoryList 标签时,有几个关键参数能帮助您精确控制要显示哪些分类:

  • moduleId: 这是最重要的参数之一,用于指定您想要获取哪个内容模型(如文章模型、产品模型等)下的分类。例如,moduleId="1" 可能代表文章模型,而 moduleId="2" 可能代表产品模型。在后台创建分类时,每个分类都会归属于一个特定的内容模型,所以在这里指定模型ID是确保获取正确分类的基础。
  • parentId: 这个参数用于控制分类的层级关系。
    • 当设置为 parentId="0" 时,您将获取到顶级分类。这在网站首页展示主要内容版块时非常有用。
    • 当设置为 parentId=item.Id 时(在循环内部),您可以获取当前分类下的子分类。这对于构建多级导航菜单或在父分类页显示其下属分类非常方便。
  • limit: 用于限制显示的分类数量,例如 limit="10" 会只显示前10个分类。
  • all=true: 如果您想获取指定模型下的所有分类,无论层级,可以使用此参数。

在网站首页展示顶级分类列表

网站首页通常需要展示网站的主要内容分类,引导用户进入不同的内容区域。这通常是网站导航或内容区块的一部分。

以下是一个在首页展示顶级分类列表的示例:

<nav class="main-nav">
    <ul>
        {% categoryList topCategories with moduleId="1" parentId="0" %}
            {% for item in topCategories %}
                <li class="nav-item {% if forloop.Counter == 1 %}first-item{% endif %}">
                    <a href="{{ item.Link }}" title="{{ item.Title }}">
                        {{ item.Title }}
                    </a>
                </li>
            {% endfor %}
        {% endcategoryList %}
    </ul>
</nav>

在这个例子中:

  • 我们定义了一个变量 topCategories 来存储获取到的分类数据。
  • moduleId="1" 假设是文章模型,确保我们获取的是文章分类。
  • parentId="0" 明确指示我们只获取最顶级的分类。
  • for 循环遍历 topCategories 中的每个 itemitem.Link 提供分类的链接地址,item.Title 提供分类的名称。
  • forloop.Counter 可以用来给第一个分类添加特殊的样式,例如 first-item

在分类页展示子分类列表或同级分类

当用户进入一个特定的分类页面时,您可能希望展示该分类的子分类,以便用户进一步细化浏览范围;或者显示与当前分类同级的其他分类,方便用户切换。

展示子分类列表:

假设您正在访问一个父分类页面,并希望在其下方显示其所有子分类。

{# 假设当前页面是一个分类页面,可以直接获取到当前分类的ID #}
<div class="sub-categories">
    <h3>探索更多分类</h3>
    <ul>
        {% categoryList subCategories with parentId=category.Id %} {# category.Id 动态获取当前分类的ID #}
            {% for item in subCategories %}
                <li>
                    <a href="{{ item.Link }}" title="{{ item.Title }}">
                        {{ item.Title }}
                        {% if item.HasChildren %} ({{ item.ArchiveCount }}) {% endif %} {# 如果有子分类,显示其下文档数量 #}
                    </a>
                </li>
            {% empty %}
                <li>当前分类下没有子分类。</li>
            {% endfor %}
        {% endcategoryList %}
    </ul>
</div>

这里:

  • parentId=category.Id 会动态地获取当前访问分类的ID,并以此为父级来获取其子分类。
  • item.HasChildren 是一个布尔值,可以用来判断当前分类是否有下级分类,从而进行一些条件展示或交互设计。
  • item.ArchiveCount 会显示该分类下直接包含的文档数量,帮助用户了解分类内容量。

结合文档列表展示分类:

一个更常见的需求是在首页或某个特定页面,遍历主要分类,并在每个分类下显示几篇最新的文章或产品。

<section class="featured-content">
    {% categoryList mainSections with moduleId="1" parentId="0" limit="4" %} {# 获取前4个顶级文章分类 #}
        {% for category in mainSections %}
            <article class="content-block">
                <h3><a href="{{ category.Link }}">{{ category.Title }}</a></h3>
                <ul class="article-list">
                    {% archiveList articlesInCategory with categoryId=category.Id type="list" limit="5" %} {# 获取当前分类下最新的5篇文章 #}
                        {% for article in articlesInCategory %}
                            <li>
                                <a href="{{ article.Link }}" title="{{ article.Title }}">
                                    <img src="{{ article.Thumb }}" alt="{{ article.Title }}" />
                                    <h4>{{ article.Title }}</h4>
                                    <p>{{ article.Description|truncatechars:80 }}</p>
                                </a>
                            </li>
                        {% empty %}
                            <li>该分类下暂无文章。</li>
                        {% endfor %}
                    {% endarchiveList %}
                </ul>
                <div class="view-more">
                    <a href="{{ category.Link }}">查看更多 &raquo;</a>
                </div>
            </article>
        {% endfor %}
    {% endcategoryList %}
</section>

此示例展示了如何将 categoryListarchiveList 标签结合使用:

  • 首先,使用 categoryList 获取顶级分类(mainSections)。
  • mainSections 的循环内部,再次使用 archiveList 标签,通过 categoryId=category.Id 参数,将当前分类的ID传递给 archiveList,从而获取该分类下的文档。
  • type="list"limit="5" 控制显示最新5篇文章。
  • article.Thumb 显示文章缩略图,article.Description|truncatechars:80 则对文章简介进行截断显示,保持页面整洁。

灵活的模板定制

安企CMS支持模板的自定义命名,这意味着您可以为特定的分类设计专属的模板。在后台的“文档分类”设置中,您可以为某个分类指定一个“分类模板”,例如 download.html。当用户访问该分类时,系统会自动应用您指定的模板。

此外,如果您在模板设计时希望对分类列表进行更精细的控制,可以利用 item.Logoitem.Thumb 来显示分类的自定义图片,或者使用 item.Description 来展示分类的简介。

通过这些灵活的标签和参数,您可以在安企CMS中构建出符合各种业务需求和设计风格的分类展示效果,极大地提升网站的内容可发现性和用户体验。


常见问题 (FAQ)

  1. 问:如何让分类列表只显示特定内容模型(如文章或产品)下的分类,而不显示其他模型的分类?
    • 答: 您可以使用 categoryList 标签的 moduleId 参数来指定要获取的分类所属的内容模型ID。例如,`{% categoryList categories with moduleId=“1

相关文章

如何在页面上显示当前位置的面包屑导航?

在网站导航中,面包屑(Breadcrumb)导航是一种非常实用的辅助工具。它能清晰地展示用户在网站中的当前位置,提供便捷的返回路径,从而显著提升用户体验,并对搜索引擎优化(SEO)也有积极作用,帮助搜索引擎理解网站的结构层级。 AnQiCMS 充分考虑了这一点,为您提供了一个简洁而强大的方式来在页面上显示面包屑导航。借助内置的模板标签,即使没有复杂的编程知识,也能轻松实现这一功能。 ###

2025-11-08

AnQiCMS如何构建多级导航菜单以优化网站结构显示?

网站的导航系统,就像是一座城市的地图,它指引着访客探索您网站的每一个角落,清晰、直观的多级导航不仅能大幅提升用户体验,更是搜索引擎优化(SEO)不可或缺的一环,帮助搜索引擎更好地理解网站结构,从而提升内容收录和排名。在AnQiCMS中,构建一套高效且美观的多级导航菜单,实际上比您想象的要简单,它提供了灵活的后台配置和强大的模板标签,让您能够轻松实现。 ### 构建导航基础

2025-11-08

如何动态生成并显示页面的SEO标题、关键词和描述(TDK)?

搜索引擎优化(SEO)是网站成功的关键一环,而页面的标题(Title)、关键词(Keywords)和描述(Description),我们常称之为 TDK,更是搜索引擎理解和展示您网页内容的核心要素。它们不仅影响用户在搜索结果中点击的意愿,也直接关系到网站在搜索引擎中的排名表现。 AnQiCMS 作为一款专注于企业级内容管理的系统,在设计之初就充分考虑了 SEO 友好性

2025-11-08

如何在模板中正确获取并显示联系方式信息?

在网站运营中,清晰有效地展示联系方式对于用户体验和业务转化至关重要。安企CMS(AnQiCMS)为我们提供了灵活且强大的功能,能够轻松在模板中获取并显示这些关键信息。 --- ### **后端配置:联系方式的信息源头** 在安企CMS中,所有网站的联系方式都集中在后台进行统一管理。这意味着无论您需要修改联系电话、邮箱,还是新增社交媒体链接,都无需触碰任何代码,只需在后台简单操作即可

2025-11-08

如何获取并显示特定分类的详细信息,例如分类Logo和简介?

在网站运营中,清晰且信息丰富的分类展示是吸引访客、提升用户体验和优化搜索引擎排名的关键。安企CMS(AnQiCMS)提供了一套直观而强大的模板标签系统,让您能够灵活地获取并呈现网站上各类分类的详细信息,例如分类Logo和简介,从而打造更具吸引力的内容布局。 ### 了解分类信息的管理与配置 在安企CMS的后台,分类信息的管理非常方便。当您进入“内容管理”下的“文档分类”进行添加或编辑时

2025-11-08

如何列出并显示所有单页面的标题和链接?

安企CMS提供了一套直观而强大的内容管理能力,其中单页面功能是构建“关于我们”、“联系方式”或“隐私政策”等独立页面的理想选择。当您需要将这些单页面的标题和链接集中展示在网站的某个位置,例如页脚导航、侧边栏或专门的页面索引时,AnQiCMS的模板标签能帮助您轻松实现。 在AnQiCMS后台,单页面内容是在“页面资源”下的“页面管理”中创建和维护的。您可以为网站轻松添加像“关于我们”

2025-11-08

如何获取并展示特定单页面的完整内容和图片?

使用AnQiCMS来管理和展示网站内容,尤其是在处理像“关于我们”、“联系方式”这类独立且内容丰富的单页面时,其灵活性和强大功能就显得尤为突出。我们常常需要将这些页面的文字、图片甚至是图片集完整地呈现在网站上,而AnQiCMS提供了非常直观的方式来实现这一点。 接下来,我们将一起探索如何在AnQiCMS中获取并展示特定单页面的完整内容和图片,让你的网站内容呈现更加生动和多样。 ## 内容创作

2025-11-08

如何在模板中调用并显示文档列表,并进行排序和筛选?

在安企CMS中管理和展示网站内容,尤其是文档列表,是日常运营中非常普遍的需求。安企CMS提供了强大且灵活的模板标签,让我们能够轻松地在网站前台调用、显示这些内容,并根据需要进行排序和筛选。本文将深入探讨如何利用安企CMS的模板功能,实现这些目标,让您的网站内容展示更具吸引力。 ### 核心功能:`archiveList` 标签——展示文档内容的基础 要显示文档列表

2025-11-08