如何使用AnqiCMS的文档列表标签,在前台展示最新、热门或指定分类的文章/产品?

在AnqiCMS中,灵活地展示网站内容是提升用户体验和满足运营需求的关键。无论是想要在首页突出最新的文章,还是在侧边栏显示热门产品,亦或是为特定栏目定制内容列表,AnqiCMS强大的文档列表标签都能助你一臂之力。通过巧妙运用这些标签,你可以轻松实现内容的多样化呈现,让你的网站更具活力和吸引力。

核心标签:archiveList 的强大之处

AnqiCMS的模板体系提供了archiveList这个核心标签,它是你获取并展示各类文档(文章、产品等)列表的万能工具。这个标签不仅能够根据多种条件筛选内容,还能控制内容的排序方式、显示数量,甚至处理分页逻辑。理解并熟练使用archiveList,将极大地提升你在网站内容布局上的自由度。

展示最新内容:让访客时刻掌握动态

想要在网站的显眼位置展示最新的文章或产品,吸引用户关注?archiveList标签的排序功能可以轻松实现这一点。通常,我们可以根据文档的发布时间(即ID)进行降序排列,以确保最新发布的内容排在最前面。

你可以这样设置来获取最新的文章列表:

{% archiveList latestArticles with moduleId="1" order="id desc" limit="5" %}
    {% for item in latestArticles %}
    <div class="article-item">
        <a href="{{ item.Link }}">
            <h3>{{ item.Title }}</h3>
            <p>{{ item.Description|truncatechars:80 }}</p> {# 截取前80个字符并添加省略号 #}
            <span>发布日期: {{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
        </a>
    </div>
    {% endfor %}
{% endarchiveList %}

在这段代码中:

  • moduleId="1" 指明我们要获取的是文章模型(如果想展示最新产品,可以改为对应的产品模型ID)。
  • order="id desc" 告诉系统按照ID倒序排列,通常ID越大代表发布时间越晚,从而实现“最新”的效果。
  • limit="5" 限制只显示最新的5篇文章。
  • stampToDate(item.CreatedTime, "2006-01-02") 是一个非常有用的时间格式化函数,能将时间戳转换为易读的日期格式。

展示热门内容:洞察用户兴趣所在

了解哪些内容最受欢迎,并将其展示出来,是提升网站互动率的有效策略。AnqiCMS为每篇文档都记录了浏览量,我们可以利用这个数据来筛选热门内容。

要展示热门的文章或产品,你可以通过order="views desc"参数,根据浏览量进行降序排列:

{% archiveList hotProducts with moduleId="2" order="views desc" limit="4" %}
    {% for item in hotProducts %}
    <div class="product-card">
        <a href="{{ item.Link }}">
            <img src="{{ item.Thumb }}" alt="{{ item.Title }}">
            <h4>{{ item.Title }}</h4>
            <p>浏览量: {{ item.Views }}</p>
        </a>
    </div>
    {% endfor %}
{% endarchiveList %}

这里:

  • moduleId="2" 假设2是产品模型的ID。
  • order="views desc" 表示按浏览量从高到低排序,呈现最热门的内容。
  • item.Thumb 用于获取产品的缩略图,让列表展示更直观。

展示指定分类内容:精准定位目标受众

网站内容通常会按照不同的分类进行组织,比如“公司新闻”、“行业动态”或“产品解决方案”等。AnqiCMS的archiveList标签允许你精确指定要显示哪个或哪些分类下的内容。

假设你希望在某个页面展示“公司新闻”分类(分类ID为3)下的文章,你可以这样操作:

{% archiveList companyNews with moduleId="1" categoryId="3" limit="6" %}
    {% for item in companyNews %}
    <div class="news-item">
        <a href="{{ item.Link }}">
            <h5>{{ item.Title }}</h5>
            <p>{{ stampToDate(item.CreatedTime, "2006-01-02") }}</p>
        </a>
    </div>
    {% endfor %}
{% endarchiveList %}

如果你想同时展示多个分类(比如ID为3和5)的文章,只需用逗号将分类ID隔开:categoryId="3,5"。 此外,categoryId参数在未指定时,会默认获取当前页面的分类ID,非常适合在分类列表页直接调用当前分类下的文章。如果你不希望获取子分类的内容,还可以加上child=false参数。

展示推荐属性内容:突出运营重点

AnqiCMS提供了多种推荐属性(如头条[h]、推荐[c]、幻灯[f]等),方便运营人员标记重要内容。利用flag参数,你可以轻松地将这些被特殊标记的内容提取出来进行展示。

例如,要在首页展示标记为“幻灯”的文章作为轮播图的内容:

{% archiveList slideshowArticles with moduleId="1" flag="f" limit="3" %}
    {% for item in slideshowArticles %}
    <div class="carousel-item">
        <a href="{{ item.Link }}">
            <img src="{{ item.Logo }}" alt="{{ item.Title }}">
            <div class="carousel-caption">{{ item.Title }}</div>
        </a>
    </div>
    {% endfor %}
{% endarchiveList %}

这里flag="f"确保只显示被标记为“幻灯”的文章。item.Logo通常用于获取首张封面图,非常适合轮播图场景。

更多高级应用与辅助标签

  • 分页展示: 当内容量较大时,结合type="page"pagination标签可以实现优雅的分页功能,提升用户浏览体验。archiveList标签设置type="page"后,系统会自动处理分页逻辑,然后你就可以使用pagination标签来渲染分页导航了。
  • 标签内容列表: 如果你想根据某个标签(Tag)来展示相关文档,tagDataList标签会是更直接的选择。它与archiveList的用法类似,但专注于标签ID。
  • 动态内容模型: AnqiCMS支持自定义内容模型,这意味着你可以为不同的业务需求创建不同的内容结构。在使用archiveList时,务必通过moduleId参数指定你想要获取的内容模型,以确保数据准确。
  • 遍历分类嵌套列表: 配合categoryList标签,你可以先循环展示分类,然后在每个分类下再使用archiveList标签展示该分类下的文章,实现更复杂的导航和内容布局。

通过上述方法,你可以充分利用AnqiCMS的文档列表标签,在前台灵活、高效地展示你的最新、热门或指定分类的文章和产品。这不仅能优化网站的内容结构,也能更好地引导用户发现他们感兴趣的信息。


常见问题 (FAQ)

1. 我想在首页同时展示最新的文章和最新的产品,应该怎么实现? 你可以分别使用两个archiveList标签来实现。第一个archiveList标签指定moduleId="1"(文章模型ID)和order="id desc"来获取最新文章,第二个archiveList标签指定moduleId="2"(产品模型ID)和order="id desc"来获取最新产品。两者互不影响,可以并列显示在页面上。

2. 为什么我的文章列表只显示了10篇文章,却没有分页链接? 如果你希望文章列表具有分页功能,archiveList标签中必须设置type="page"参数。同时,在archiveList标签的结束之后,你需要配合使用pagination标签来渲染分页导航链接。例如:{% archiveList archives with type="page" limit="10" %}...{% endarchiveList %} 后面紧跟着 {% pagination pages with show="5" %}...{% endpagination %}

3. 我想在文章详情页显示当前文章所在分类下的其他文章,但不想显示子分类的内容,应该怎么做? 在文章详情页,archiveList标签会默认获取当前文章所在分类的ID。为了只显示当前分类(不包含子分类)的其他文章,你可以在archiveList标签中明确设置categoryId="{{ archive.CategoryId }}"(这里的archive.CategoryId是当前文章的分类ID)和child=false参数。例如:{% archiveList relatedArticles with categoryId="{{ archive.CategoryId }}" child=false limit="5" %}