在构建和运营网站时,内容的组织与呈现方式至关重要。尤其是当网站内容日益丰富,如何让访问者迅速找到他们感兴趣的信息,并清晰地浏览特定主题下的所有文章,就成了一个需要精心设计的问题。安企CMS(AnQiCMS)提供了强大且灵活的内容管理能力,让我们可以轻松实现对文档列表的精准控制与展示。今天,我们就来探讨一个常见的需求:如何根据分类ID,筛选并循环输出特定分类下的文档列表。这将帮助您更好地组织网站结构,提升用户体验,并优化内容的查找效率。

核心功能解析:archiveList标签

在AnQiCMS中,要实现根据分类ID筛选并输出文档列表,核心在于使用archiveList这个模板标签。它就像是一个功能强大的查询工具,能够从您的内容库中精准地抓取所需文档。

archiveList标签有多个参数可以帮助您精确定位内容,其中与分类筛选最密切相关的就是categoryId

  • 指定单个分类ID:当您希望展示某个特定分类(例如“公司新闻”或“产品介绍”)下的所有文档时,可以直接将该分类的ID赋值给categoryId参数。例如,如果“公司新闻”的分类ID是1,您可以这样使用:{% archiveList archives with categoryId="1" %}

  • 指定多个分类ID:如果您需要同时展示多个不连续分类下的文档,categoryId参数同样支持。您只需要将多个分类ID用英文逗号,分隔开即可。例如,{% archiveList archives with categoryId="1,5,8" %}将输出分类ID为158的文档。

  • 控制显示数量与类型archiveList标签还允许您通过limit参数控制一次性显示多少篇文档,例如limit="10"表示显示10篇。type参数则决定了列表的类型,type="list"用于常规列表,type="page"则表示您打算结合分页功能使用。

  • 包含或排除子分类文档:在某些情况下,一个大分类下可能包含多个子分类。child参数可以帮助您决定是否将子分类的文档也包含在当前列表中。默认情况下,childtrue,即会包含子分类的文档。如果您只想显示当前分类直接关联的文档,可以将其设置为child=false

实战操作:筛选并循环输出文档列表

了解了archiveList标签的关键参数后,我们来看看如何在实际的模板中运用它来展示您的内容。

场景一:输出某个特定分类下的最新文档

假设您想在首页或者某个专题页面上,展示“公司新闻”这个分类下的最新几篇文档。首先,您需要知道“公司新闻”的分类ID(假设是1)。然后,您可以使用archiveList标签来获取这些文档,并结合for循环标签逐一输出。

{# 假设“公司新闻”的分类ID是 1 #}
<div class="news-list">
    <h3>公司新闻</h3>
    {% archiveList newsItems with categoryId="1" type="list" limit="5" order="id desc" %}
        {% for item in newsItems %}
        <article>
            <h4><a href="{{item.Link}}">{{item.Title}}</a></h4>
            <p>{{item.Description}}</p>
            <time>{{stampToDate(item.CreatedTime, "2006-01-02")}}</time>
        </article>
        {% empty %}
        <p>目前没有公司新闻发布。</p>
        {% endfor %}
    {% endarchiveList %}
</div>

在这段代码中:

  • `archiveList newsItems with category