在AnQiCMS中,您可以通过灵活的模板标签轻松地在分类页面显示其下属的子分类列表。这对于构建清晰的网站结构、提升用户导航体验以及优化搜索引擎爬取效率都至关重要。AnQiCMS强大的模板系统和其Django风格的标签语法,使得这类动态内容的展示变得直观且高效。

要实现在分类页面显示其下属的子分类列表,主要涉及以下几个步骤:

一、理解AnQiCMS的模板结构和标签用法

AnQiCMS的模板文件通常以.html为后缀,并存储在/template目录下。它采用类似Django模板引擎的语法,变量使用双花括号{{变量}},条件判断和循环控制等标签则使用单花括号和百分号{% 标签 %}。在分类页面显示子分类列表,核心在于利用AnQiCMS提供的categoryList标签。

通常,分类页面会使用模型特定的列表模板,例如文章模型的分类列表页可能是article/list.html,或者您在后台为特定分类自定义的模板文件。

二、获取当前分类信息与模型ID

在分类列表页面,您首先需要获取当前分类的一些基本信息,尤其是它的ID和所属的模型ID。这可以通过categoryDetail标签来实现。虽然categoryList在当前分类页面调用时,多数情况下可以智能地获取其子分类,但显式地获取当前分类的ID和模型ID并传递给categoryList标签,会使代码更加健壮和易读。

例如,在您的分类模板文件的适当位置,可以这样获取当前分类的详情:

{# 假设您正在一个分类的列表页,并且希望显示当前分类的子分类。 #}

{# 1. 首先,获取当前分类的详细信息,这能帮助我们确定模型ID以及作为父ID。 #}
{% categoryDetail currentCategoryDetail %}
    {# 此时,currentCategoryDetail 对象包含了当前分类的所有信息,例如: #}
    {# {{ currentCategoryDetail.Title }} - 当前分类的标题 #}
    {# {{ currentCategoryDetail.Id }} - 当前分类的ID #}
    {# {{ currentCategoryDetail.ModuleId }} - 当前分类所属模型的ID #}
    {# 您可以根据需要显示这些信息,例如作为页面标题或面包屑导航的一部分。 #}
    <div class="current-category-info">
        <h1>{{ currentCategoryDetail.Title }}</h1>
        <p>{{ currentCategoryDetail.Description }}</p>
    </div>

    {# 接下来,我们就可以使用这些信息来获取其下属子分类。 #}
{% endcategoryDetail %}

三、使用categoryList标签显示子分类列表

获取到当前分类的IdModuleId后,您就可以调用categoryList标签来获取其直接下属的子分类了。categoryList标签支持多个参数,其中parentIdmoduleId是关键。

  • parentId:设置为您希望获取子分类的父分类ID。在这里,就是上面获取到的currentCategoryDetail.Id
  • moduleId:指定所属内容模型的ID。这同样可以从currentCategoryDetail.ModuleId获取,确保您获取的是正确模型下的子分类。

下面是一个完整的示例,展示了如何在分类页面获取并展示其下属的子分类列表,同时还考虑了子分类可能包含更深层次子分类的情况:

”`twig {# 假设您正在一个分类的列表页,并且希望显示当前分类的子分类。 #}

{# 1. 首先,获取当前分类的详细信息,这能帮助我们确定模型ID以及作为父ID。 #} {% categoryDetail currentCategoryDetail %}

<div class="current-category-info">
    <h1>{{ currentCategoryDetail.Title }}</h1>
    <p>分类简介:{{ currentCategoryDetail.Description }}</p>
    {# 更多当前分类的信息可以在这里显示,如Banner图、缩略图等 #}
    {%