如何在安企CMS中调用并显示最新的文章列表?

作为一款功能丰富且易于使用的内容管理系统,安企CMS在内容展示方面提供了极大的灵活性。当您需要向访客展示网站上最新的文章,例如在首页、侧边栏或特定专题页,安企CMS能够帮助您轻松实现这一需求。

要实现“在安企CMS中调用并显示最新的文章列表”,核心在于灵活运用其强大的模板标签系统,特别是 archiveList 标签。安企CMS的模板引擎类似Django,允许您通过简洁的标签语法在页面中调用各类数据。

理解 archiveList 标签的基础用法

archiveList 标签是安企CMS用于获取文章列表数据的核心标签。它的基本结构如下:

{% archiveList archives with ... %}
    {% for item in archives %}
        {# 在这里显示每篇文章的具体信息 #}
    {% endfor %}
{% endarchiveList %}

在这里,archives 是您为文章列表定义的一个变量名,可以根据您的喜好命名。item 则代表循环中的每一篇文章对象,您可以通过 item.字段名 的方式来获取文章的各项属性。

关键参数:如何获取“最新”文章

要调用并显示“最新”文章,您需要关注 archiveList 标签的几个关键参数:

  1. order 参数: 这是决定文章排序方式的核心。为了获取最新文章,您可以将 order 设置为 id desc(按文章ID降序,通常文章ID越大代表发布越晚,即越新)或 CreatedTime desc(按文章创建时间降序)。例如:order="id desc"
  2. limit 参数: 用于控制您希望显示的文章数量。如果您想在页面上显示5篇最新文章,可以设置 limit="5"
  3. moduleId 参数: 安企CMS支持多种内容模型(如文章、产品等)。为确保只调用文章类型的内容,您需要明确指定文章的模型ID。通常,文章模型的ID为 1,因此可以设置为 moduleId="1"
  4. 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.htmlpartial/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