在网站运营中,分类页面的内容展示逻辑对用户体验和信息架构有着重要影响。我们常常会遇到这样的需求:当一个分类下有子分类时,优先展示这些子分类,方便用户进行更细致的导航;而如果该分类没有子分类,则直接展示该分类下的文章列表,避免页面内容为空或导航层级过深。安企CMS(AnQiCMS)提供了灵活的模板标签,可以轻松实现这种动态显示效果。

理解分类页面的动态显示逻辑

要实现分类页面的智能展示,核心在于判断当前分类是否存在子分类。根据判断结果,我们采取不同的展示策略:

  1. 若存在子分类: 展示当前分类下的所有子分类,通常以列表或卡片形式呈现,引导用户进入更具体的分类。
  2. 若不存在子分类: 展示当前分类所包含的文章列表,让用户能够直接浏览内容。

这种设计能够有效提升网站的可用性,让用户无论在哪个层级的分类页面,都能找到有价值的信息,而不是看到一个空荡荡的页面。

安企CMS实现动态展示的关键模板标签

安企CMS的模板系统基于Django模板引擎语法,提供了强大的标签功能来获取和处理数据。要实现上述逻辑,我们需要用到以下几个核心标签:

  1. categoryDetail 标签: 用于获取当前分类的详细信息。我们可以通过它获取当前分类的ID,以便作为参数传递给其他标签。

    • 用法示例: {% categoryDetail currentCategory %} (获取当前分类的完整对象)或 {% categoryDetail currentCategoryId with name="Id" %} (仅获取当前分类的ID)。
  2. categoryList 标签: 用于获取分类列表,这正是我们用来查找子分类的关键。

    • 主要参数:
      • parentId:指定父分类ID,用来获取其直接子分类。当在分类页面使用时,如果传入当前分类的ID,就能获取到当前分类的所有子分类。
      • moduleId:指定内容模型ID,确保获取的是特定模型的分类(如文章模型、产品模型)。
    • 返回属性: 在遍历categoryList返回的item时,每个分类项都包含IdTitleLink等信息。
  3. archiveList 标签: 用于获取文章(或任何文档模型下的内容)列表。

    • 主要参数:
      • categoryId:指定分类ID,获取该分类下的文章。
      • type:通常设置为"list"(获取固定数量)或"page"(获取可分页列表)。
      • limit:限制文章数量。
    • 返回属性: 遍历archiveList返回的item时,每个文章项包含IdTitleLinkDescriptionThumb等信息。

4