作为一款功能丰富且易于使用的内容管理系统,安企CMS在内容展示方面提供了极大的灵活性。当您需要向访客展示网站上最新的文章,例如在首页、侧边栏或特定专题页,安企CMS能够帮助您轻松实现这一需求。
要实现“在安企CMS中调用并显示最新的文章列表”,核心在于灵活运用其强大的模板标签系统,特别是 archiveList 标签。安企CMS的模板引擎类似Django,允许您通过简洁的标签语法在页面中调用各类数据。
理解 archiveList 标签的基础用法
archiveList 标签是安企CMS用于获取文章列表数据的核心标签。它的基本结构如下:
{% archiveList archives with ... %}
{% for item in archives %}
{# 在这里显示每篇文章的具体信息 #}
{% endfor %}
{% endarchiveList %}
在这里,archives 是您为文章列表定义的一个变量名,可以根据您的喜好命名。item 则代表循环中的每一篇文章对象,您可以通过 item.字段名 的方式来获取文章的各项属性。
关键参数:如何获取“最新”文章
要调用并显示“最新”文章,您需要关注 archiveList 标签的几个关键参数:
order参数: 这是决定文章排序方式的核心。为了获取最新文章,您可以将order设置为id desc(按文章ID降序,通常文章ID越大代表发布越晚,即越新)或CreatedTime desc(按文章创建时间降序)。例如:order="id desc"。limit参数: 用于控制您希望显示的文章数量。如果您想在页面上显示5篇最新文章,可以设置limit="5"。moduleId参数: 安企CMS支持多种内容模型(如文章、产品等)。为确保只调用文章类型的内容,您需要明确指定文章的模型ID。通常,文章模型的ID为1,因此可以设置为moduleId="1"。type参数: 如果您只是想显示一个简单的文章列表而无需分页,可以将type设置为list。
显示文章的详细信息
在 {% for item in archives %} 循环内部,您可以访问 item 对象的各种属性来显示文章的标题、链接、发布日期、缩略图等。常用的属性包括:
item.Title:文章标题。item.Link:文章详情页链接。item.Description:文章简介。item.CreatedTime:文章创建时间(时间戳格式,需要格式化)。item.Views:文章浏览量。item.Thumb:文章缩略图地址。item.Logo:文章封面首图地址。
对于 CreatedTime 这样的时间戳字段,安企CMS提供了一个方便的 stampToDate 函数来格式化显示。例如,{{stampToDate(item.CreatedTime, "2006-01-02")}} 会将时间戳格式化为“年-月-日”的日期格式。
实际操作示例:调用并显示5篇最新文章
假设您希望在网站的某个位置显示5篇最新的文章,包含标题、发布日期和文章链接,并且有缩略图就显示缩略图。您可以将以下代码片段放置在您的安企CMS模板文件(例如 index.html 或 partial/aside.html 等)中:
<div class="latest-articles-list">
<h3>最新文章</h3>
<ul>
{% archiveList archives with moduleId="1" order="id desc" limit="5" type="list" %}
{% for item in archives %}
<li>
<a href="{{ item.Link }}">
{% if item.Thumb %}
<img src="{{ item.Thumb }}" alt="{{ item.Title }}" class="article-thumb">
{% else %}
{# 如果没有缩略图,可以显示一个默认图片或省略图片区域 #}
<img src="/public/static/images/default-thumb.webp" alt="默认缩略图" class="article-thumb">
{% endif %}
<div class="article-info">
<h4>{{ item.Title }}</h4>
<p class="article-date">{{ stampToDate(item.CreatedTime, "2006-01-02") }}</p>
</div>
</a>
</li>
{% empty %}
<li>暂无最新文章。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
代码解析:
{% archiveList archives with moduleId="1" order="id desc" limit="5" type="list" %}:archives:将获取到的文章列表存储到名为archives的变量中。moduleId="1":指定获取文章模型(ID通常为1)下的内容。order="id desc":按照文章ID降序排列,确保获取到的是最新发布的文章。limit="5":限制只显示5篇文章。type="list":以列表形式获取,不处理分页。
{% for item in archives %}:循环遍历archives变量中的每一篇文章对象。{% if item.Thumb %}:判断当前文章是否有缩略图。如果有,则显示。<img src="{{ item.Thumb }}" alt="{{ item.Title }}" class="article-thumb">:显示缩略图,alt属性有助于SEO和用户体验。<h4>{{ item.Title }}</h4>:显示文章标题。<p class="article-date">{{ stampToDate(item.CreatedTime, "2006-01-02") }}</p>:格式化并显示文章发布日期。{% empty %}:这是一个非常实用的标签,当archives列表为空时,会显示<li>暂无最新文章。</li>,避免页面出现空白。
通过上述步骤和示例代码,您就可以在安企CMS中灵活地调用并显示最新的文章列表了。安企CMS的强大之处在于其可定制的模板系统,让您能够根据网站的实际需求,自由组合和展示内容。
常见问题 (FAQ)
1. 如何只显示某个特定分类下的最新文章?
您可以在 archiveList 标签中添加 categoryId 参数来指定分类ID。例如,要显示分类ID为10的最新5篇文章,您可以这样写:
{% archiveList archives with moduleId="1" categoryId="10" order="id desc" limit="5" type="list" %}。您可以在后台的“内容管理”->“文档分类”中找到对应分类的ID。
2. 如何实现最新文章列表的分页显示?
如果最新文章列表很长,您可能希望进行分页。这需要将 archiveList 标签的 type 参数设置为 page,并配合 pagination 标签使用。例如:
{% archiveList archives with moduleId="1" order="id desc" limit="10" type="page" %} (在循环后) {% pagination pages with show="5" %}...{% endpagination %}。具体的 pagination 标签用法,建议查阅安企CMS的“模板标签和使用方法”文档,其中有详细的分页代码示例。
3. order="id desc" 和 order="CreatedTime desc" 在获取最新文章时有什么区别?
order="id desc" 是根据文章在数据库中的唯一标识符(ID)进行降序排列。在大多数情况下,文章ID是递增的,所以ID越大通常代表发布时间越晚,从而达到获取最新文章的效果。
order="CreatedTime desc" 则是直接根据文章的创建时间字段进行降序排列。这在理论上是更精确的“最新”定义。
在实际使用中,两者的效果往往非常接近,您可以根据个人偏好或特定需求选择其一。如果您的文章发布时间有严格的先后顺序,推荐使用 CreatedTime desc。