在 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>
在这段代码中:
- 我们使用
<section>标签将每个分类的文章列表清晰地区分开来,并添加了标题<h2>。 {% archiveList newsArchives with ... %}和{% archiveList trendArchives with ... %}分别加载了两个不同的文章列表,并将结果存储在newsArchives和trendArchives变量中。moduleId="1"确保我们只获取文章模型下的内容。categoryId="10"和categoryId="12"精确指定了要获取的分类。limit="5"将每个列表的文章数量限制为 5 篇。order="id desc"保证了获取到的是最新的文章。type="list"表示这是一个简单的列表显示,不涉及分页。{% for item in newsArchives %}循环遍历获取到的文章,item变量在每次循环中代表一篇具体的文章。- 我们展示了文章的标题 (
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'"这是一个实用的技巧,当文章没有缩略图或者缩略图加载失败时,会自动显示一个默认的占位图。
{% empty %}块用于当指定分类下没有文章时,显示友好的提示信息。
保存模板文件后,刷新您的网站首页,就可以看到两个指定分类的最新文章列表,整齐地展示在您的访客面前了。
总结
AnQiCMS 的 archiveList 标签为网站运营者提供了极大的灵活性,让您能够根据业务需求,在网站的任何位置精确控制内容的展示。无论是首页、侧边栏还是专题页面,结合 categoryId、limit、order 等参数,您都可以轻松构建出动态、吸引人的文章列表,有效提升网站的用户体验和内容营销效果。掌握这个标签的使用,将让您的 AnQiCMS 网站更具活力和表现力。
常见问题解答 (FAQ)
Q1: 如何在 AnQiCMS 后台查看分类的 ID?
A1: 您可以登录 AnQiCMS 后台,导航到“内容管理” -> “文档分类”页面。在这个页面中,您会看到所有已创建的分类列表。每个分类行的最左侧通常会显示其唯一的数字 ID。此外,当您点击某个分类进行编辑时,浏览器地址栏的 URL 中也会包含 id= 参数,其值就是该分类的 ID。
**Q2: 我想在首页展示所有分类