如何使用 `archiveList` 标签在 AnQiCMS 首页展示指定分类的最新文章列表?

在 AnQiCMS 中,网站首页是访客了解您内容的第一站,因此高效地展示最新、最相关的文章至关重要。AnQiCMS 提供了强大且易于使用的模板标签系统,其中 archiveList 标签就是您在首页精准展示指定分类最新文章的得力助手。

archiveList 标签简介:首页动态内容的核心

archiveList 标签是 AnQiCMS 模板引擎中用于获取文档列表的核心工具。它不仅能够获取常规的文章列表,还能灵活地筛选、排序,甚至实现分页显示。无论是需要在侧边栏展示热门文章,还是在首页突出特定分类的最新动态,archiveList 都能轻松应对。通过合理配置其参数,您可以精确控制要展示的内容范围和呈现方式。

核心参数解析:精准定位您的文章列表

要实现在 AnQiCMS 首页展示指定分类的最新文章列表,我们需要了解 archiveList 标签的几个关键参数:

  • moduleId: 这个参数用于指定您要获取内容的模型ID。在 AnQiCMS 中,通常文章属于“文章模型”,其ID默认为 1。如果您创建了其他内容模型(如“产品模型”),则需要根据实际情况设置相应的ID。
  • categoryId: 这是指定分类文章的关键参数。您可以传入单个分类的ID(例如 categoryId="1"),也可以传入多个分类的ID,用英文逗号 , 分隔(例如 categoryId="1,2,3")。这意味着您可以在一个列表中同时展示多个相关分类的文章。
  • limit: 决定了您希望展示的文章数量。比如 limit="5" 将显示最新的 5 篇文章。在首页这样的场景中,通常我们会限制显示数量以保持页面的简洁。
  • order: 用于指定文章的排序方式。为了获取“最新”文章,您可以使用 order="id desc"order="CreatedTime desc",表示按文章ID或创建时间倒序排列。
  • type: 这个参数决定了列表的类型。对于首页展示,我们通常只希望简单列出几篇文章而不需要分页,这时可以设置 type="list"。如果您需要分页,可以设置为 type="page",并结合 pagination 标签使用。

实战演练:在首页展示特定分类的最新文章

假设您的网站有一个“新闻中心”分类(分类ID为 10)和一个“行业动态”分类(分类ID为 12),您希望在首页各自展示这两个分类的最新文章,各显示 5 篇。

首先,您需要进入 AnQiCMS 后台,在“内容管理”下的“文档分类”中找到“新闻中心”和“行业动态”这两个分类的 ID。假设“新闻中心”的 ID 是 10,“行业动态”的 ID 是 12

接下来,我们需要编辑您当前主题的首页模板文件。通常,首页模板文件位于 /template/您的主题目录/index/index.html

打开 index/index.html 文件,您可以像下面这样来插入代码:

{# 在首页展示“新闻中心”分类的最新 5 篇文章 #}
<section class="latest-news">
    <h2>新闻中心</h2>
    <ul>
        {% archiveList newsArchives with moduleId="1" categoryId="10" limit="5" order="id desc" type="list" %}
            {% for item in newsArchives %}
                <li>
                    <a href="{{ item.Link }}" title="{{ item.Title }}">
                        <img src="{{ item.Thumb }}" alt="{{ item.Title }}" onerror="this.src='/static/images/default-thumb.webp'">
                        <h3>{{ item.Title }}</h3>
                        <p class="summary">{{ item.Description|truncatechars:100 }}</p>
                        <span class="date">{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
                    </a>
                </li>
            {% empty %}
                <li>暂无新闻内容。</li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</section>

{# 在首页展示“行业动态”分类的最新 5 篇文章 #}
<section class="industry-trends">
    <h2>行业动态</h2>
    <ul>
        {% archiveList trendArchives with moduleId="1" categoryId="12" limit="5" order="id desc" type="list" %}
            {% for item in trendArchives %}
                <li>
                    <a href="{{ item.Link }}" title="{{ item.Title }}">
                        <img src="{{ item.Thumb }}" alt="{{ item.Title }}" onerror="this.src='/static/images/default-thumb.webp'">
                        <h3>{{ item.Title }}</h3>
                        <p class="summary">{{ item.Description|truncatechars:100 }}</p>
                        <span class="date">{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
                    </a>
                </li>
            {% empty %}
                <li>暂无行业动态。</li>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</section>

在这段代码中:

  1. 我们使用 <section> 标签将每个分类的文章列表清晰地区分开来,并添加了标题 <h2>
  2. {% archiveList newsArchives with ... %}{% archiveList trendArchives with ... %} 分别加载了两个不同的文章列表,并将结果存储在 newsArchivestrendArchives 变量中。
  3. moduleId="1" 确保我们只获取文章模型下的内容。
  4. categoryId="10"categoryId="12" 精确指定了要获取的分类。
  5. limit="5" 将每个列表的文章数量限制为 5 篇。
  6. order="id desc" 保证了获取到的是最新的文章。
  7. type="list" 表示这是一个简单的列表显示,不涉及分页。
  8. {% for item in newsArchives %} 循环遍历获取到的文章,item 变量在每次循环中代表一篇具体的文章。
  9. 我们展示了文章的标题 (item.Title)、链接 (item.Link)、缩略图 (item.Thumb)、简介 (item.Description) 和发布日期 (stampToDate(item.CreatedTime, "2006-01-02"))。
    • item.Description|truncatechars:100 使用了 truncatechars 过滤器,将文章简介截断到 100 个字符,并在末尾添加 ...,保持简介的简洁。
    • stampToDate(item.CreatedTime, "2006-01-02") 则将文章的 Unix 时间戳格式化为 年-月-日 的可读日期格式。
    • onerror="this.src='/static/images/default-thumb.webp'" 这是一个实用的技巧,当文章没有缩略图或者缩略图加载失败时,会自动显示一个默认的占位图。
  10. {% empty %} 块用于当指定分类下没有文章时,显示友好的提示信息。

保存模板文件后,刷新您的网站首页,就可以看到两个指定分类的最新文章列表,整齐地展示在您的访客面前了。

总结

AnQiCMS 的 archiveList 标签为网站运营者提供了极大的灵活性,让您能够根据业务需求,在网站的任何位置精确控制内容的展示。无论是首页、侧边栏还是专题页面,结合 categoryIdlimitorder 等参数,您都可以轻松构建出动态、吸引人的文章列表,有效提升网站的用户体验和内容营销效果。掌握这个标签的使用,将让您的 AnQiCMS 网站更具活力和表现力。


常见问题解答 (FAQ)

Q1: 如何在 AnQiCMS 后台查看分类的 ID?

A1: 您可以登录 AnQiCMS 后台,导航到“内容管理” -> “文档分类”页面。在这个页面中,您会看到所有已创建的分类列表。每个分类行的最左侧通常会显示其唯一的数字 ID。此外,当您点击某个分类进行编辑时,浏览器地址栏的 URL 中也会包含 id= 参数,其值就是该分类的 ID。

**Q2: 我想在首页展示所有分类