精细掌控:安企CMS文章列表页数量与排序的实战指南

在内容运营中,网站的文章列表页是用户浏览内容、发现信息的重要窗口。一个布局合理、内容有序的列表页,不仅能提升用户体验,更是搜索引擎优化(SEO)的关键一环。安企CMS深谙此道,通过其强大且灵活的模板标签体系,让您能够轻松精细地控制文章列表页每页显示的数量和内容的排序方式。

这篇文章将带您深入了解如何在安企CMS中,利用核心模板标签来达到这一目标,让您的网站内容展示更具吸引力和逻辑性。

核心标签揭秘:archiveList 的强大功能

在安企CMS中,所有的文章、产品等内容数据的调用,都离不开一个核心标签:archiveList。它就像您的专属内容管理员,能够根据您的指令,从庞大的内容库中精准地筛选并呈现所需文章。控制每页显示数量和排序方式的核心,也正是通过这个标签的不同参数来实现的。

掌握数量:limit 参数与灵活分页

要控制列表页每页显示多少篇文章,archiveList 标签的 limit 参数是您的首选工具。

如果您的列表页不需要分页,只是想简单展示固定数量的文章,例如首页的“最新文章”模块,您可以将 type 参数设置为 list,并配合 limit 参数指定显示数量。比如,只想显示最新的5篇文章:

{% archiveList archives with type="list" limit="5" %}
    {% for item in archives %}
        <li><a href="{{item.Link}}">{{item.Title}}</a></li>
    {% endfor %}
{% endarchiveList %}

而对于需要分页的文章列表页,例如一个分类下的所有文章,您需要将 type 参数设置为 page。此时,limit 参数的作用就变成了定义“每页显示的文章数量”。为了让页面能够展示完整的页码导航,我们还需要引入 pagination 标签:

{% archiveList archives with type="page" limit="10" %} {# 每页显示10篇文章 #}
    {% for item in archives %}
        <li>
            <a href="{{item.Link}}">
                <h5>{{item.Title}}</h5>
                <p>{{item.Description}}</p>
                <span>发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                <span>浏览量:{{item.Views}}</span>
            </a>
        </li>
    {% endfor %}
{% endarchiveList %}

{# 分页导航 #}
<div class="pagination">
    {% pagination pages with show="5" %} {# 最多显示5个页码按钮 #}
        <ul>
            <li class="{% if pages.FirstPage.IsCurrent %}active{% endif %}"><a href="{{pages.FirstPage.Link}}">首页</a></li>
            {% if pages.PrevPage %}
                <li><a href="{{pages.PrevPage.Link}}">上一页</a></li>
            {% endif %}
            {% for item in pages.Pages %}
                <li class="{% if item.IsCurrent %}active{% endif %}"><a href="{{item.Link}}">{{item.Name}}</a></li>
            {% endfor %}
            {% if pages.NextPage %}
                <li><a href="{{pages.NextPage.Link}}">下一页</a></li>
            {% endif %}
            <li class="{% if pages.LastPage.IsCurrent %}active{% endif %}"><a href="{{pages.LastPage.Link}}">尾页</a></li>
        </ul>
    {% endpagination %}
</div>

在这段代码中,archiveList 通过 limit="10" 告诉系统每页显示10篇文章,而 pagination 标签则负责根据当前页码和总文章数,生成“首页”、“上一页”、“1, 2, 3…”、“下一页”、“尾页”等导航链接,让用户可以在不同页面间自由切换。show="5"参数则控制了中间页码按钮的最大显示数量。

定义顺序:order 参数的多种选择

文章的排序方式直接影响到内容的呈现逻辑和用户的阅读习惯。安企CMS的 archiveList 标签提供了灵活的 order 参数,让您可以根据实际需求,将文章按照不同的逻辑进行排序。

常见的排序方式包括:

  • 最新发布: 通常是网站默认的排序方式,文章按 id desc (ID倒序,即发布时间倒序)显示,最新发布的文章排在前面。
  • 热门文章: 依据文章的浏览量 views 进行排序。例如,order="views desc" 会让浏览量最高的文章优先展示。
  • 后台自定义排序: 如果您希望手动调整文章的顺序,可以在后台编辑文章时设置一个“显示顺序”值,然后使用 order="sort desc" 来调用。数字越小通常越靠前(具体取决于后台设置)。
  • 混合排序: 您也可以组合多种排序规则,例如 order="flag desc|views desc",它会首先按推荐属性(flag)排序,然后在推荐属性相同的情况下,再按浏览量排序。

以下是一个按浏览量从高到低排序的文章列表示例:

{% archiveList hotArchives with type="list" limit="8" order="views desc" %} {# 获取浏览量最高的8篇文章 #}
    <h3>热门文章</h3>
    <ul>
        {% for item in hotArchives %}
            <li><a href="{{item.Link}}">{{item.Title}} - {{item.Views}}次浏览</a></li>
        {% endfor %}
    </ul>
{% endarchiveList %}

综合运用:让内容展示更精准

除了 limitorder 参数,archiveList 标签还支持多种筛选条件,让您可以更精准地控制列表页显示的内容:

  • categoryId 指定文章所属的分类ID。例如 categoryId="1" 只显示ID为1的分类下的文章。
  • moduleId 指定文章所属的模型ID。例如 moduleId="1" 只显示“文章模型”下的内容,而 moduleId="2" 则显示“产品模型”下的内容。
  • flag 根据文章的推荐属性(如“头条[h]”、“推荐[c]”等)进行筛选。例如 flag="h" 只显示被标记为头条的文章。
  • q 在搜索结果页中,通过 q 参数可以匹配文章标题中包含特定关键词的内容。

通过灵活组合这些参数,您可以构建出各种复杂且富有逻辑的文章列表页,无论是按分类、按标签,还是结合热门、推荐等属性,都能在安企CMS中实现。

实践案例:一步步配置列表页

  1. 确定模板文件: 首先,找到您想要修改的列表页对应的模板文件。通常,文章分类列表页的模板命名规则可能是 {模型table}/list.html{模型table}/list-{分类ID}.html
  2. 编写 archiveList 标签: 在模板中,使用 archiveList 标签来获取文章数据,并根据需求设置 typepagelimit 参数来定义每页数量