在网站运营中,如何高效地展示和组织内容,往往直接关系到用户体验和内容的传播效果。AnQiCMS 提供了一系列强大且灵活的模板标签,让内容管理者可以轻松地控制文章的展示方式。今天,我们就来聊聊如何使用 archiveList 标签,根据文章的浏览量或发布时间来排序显示文章列表。
理解 archiveList 标签
archiveList 标签是 AnQiCMS 中用于获取和展示文章列表的核心工具。它能够根据多种条件筛选文章,并以您期望的方式进行排序。无论是构建首页的最新动态,还是分类页的热门文章推荐,archiveList 都能提供强大的支持。
在使用 archiveList 时,您通常会看到这样的结构:
{% archiveList 变量名称 with 参数="值" %}
{% for item in 变量名称 %}
{# 这里是每篇文章的显示内容 #}
{% endfor %}
{% endarchiveList %}
其中,变量名称 是您自定义的列表变量名,参数="值" 则是控制列表行为的关键所在。而本文的重点,就落在 order 这个参数上。
按发布时间排序:展示最新文章
在许多网站中,访客都希望看到最新发布的内容,尤其是在新闻、博客或技术分享类网站上。AnQiCMS 提供了简洁的方式来实现这一点。
要按文章的发布时间倒序(即最新发布在前)排序,您可以在 archiveList 标签中使用 order="id desc"。在 AnQiCMS 的设计中,文章的 ID 是自增长的,通常情况下,ID 越大意味着文章发布的时间越晚。
例如,如果您想在首页展示最新的 5 篇文章:
{# 假设这是您的网站首页,显示最新的5篇文章 #}
<div class="latest-articles">
<h3>最新发布</h3>
<ul>
{% archiveList latestArticles with type="list" limit="5" order="id desc" %}
{% for article in latestArticles %}
<li>
<a href="{{ article.Link }}">{{ article.Title }}</a>
<span class="publish-date">发布于: {{ stampToDate(article.CreatedTime, "2006-01-02") }}</span>
</li>
{% empty %}
<li>暂无最新文章。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
如果您的列表需要分页,例如在文章分类页面,每页显示 10 篇文章,并按发布时间排序:
{# 假设这是文章分类页,每页显示10篇最新文章 #}
<div class="category-list">
<h3>分类最新文章</h3>
<ul>
{% archiveList latestPaginated with type="page" limit="10" order="id desc" %}
{% for article in latestPaginated %}
<li>
<h4><a href="{{ article.Link }}">{{ article.Title }}</a></h4>
<p>{{ article.Description|truncatechars:100 }}</p>
<span class="publish-info">发布于: {{ stampToDate(article.CreatedTime, "2006-01-02 15:04") }}</span>
</li>
{% empty %}
<li>该分类下暂无文章。</li>
{% endfor %}
{% endarchiveList %}
</ul>
{# 分页标签需要配合 type="page" 使用 #}
<div class="pagination-controls">
{% pagination pages with show="5" %}
{# 这里是分页的渲染代码,例如首页、上一页、页码列表、下一页、尾页 #}
{% if pages.FirstPage %}<a class="page-item {% if pages.FirstPage.IsCurrent %}active{% endif %}" href="{{pages.FirstPage.Link}}">首页</a>{% endif %}
{% if pages.PrevPage %}<a class="page-item" href="{{pages.PrevPage.Link}}">上一页</a>{% endif %}
{% for item in pages.Pages %}<a class="page-item {% if item.IsCurrent %}active{% endif %}" href="{{item.Link}}">{{item.Name}}</a>{% endfor %}
{% if pages.NextPage %}<a class="page-item" href="{{pages.NextPage.Link}}">下一页</a>{% endif %}
{% if pages.LastPage %}<a class="page-item {% if pages.LastPage.IsCurrent %}active{% endif %}" href="{{pages.LastPage.Link}}">尾页</a>{% endif %}
{% endpagination %}
</div>
</div>
这里,type="page" 告诉 archiveList 这是一个分页列表,需要配合 pagination 标签来生成页码和导航。
按浏览量排序:展示热门文章
除了最新内容,热门文章也是吸引访客的重要元素。通过展示浏览量最高的文章,您可以帮助新访客快速了解网站的精华内容。
要按文章的浏览量倒序(即浏览量最高在前)排序,您可以在 archiveList 标签中使用 order="views desc"。
同样以首页展示 5 篇热门文章为例:
{# 假设这是您的网站首页,显示最热门的5篇文章 #}
<div class="popular-articles">
<h3>热门文章</h3>
<ul>
{% archiveList popularArticles with type="list" limit="5" order="views desc" %}
{% for article in popularArticles %}
<li>
<a href="{{ article.Link }}">{{ article.Title }}</a>
<span class="view-count">浏览量: {{ article.Views }}</span>
</li>
{% empty %}
<li>暂无热门文章。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
如果您的热门文章列表也需要分页:
”`twig {# 假设这是热门文章分类页,每页显示10篇热门文章 #}
<h3>分类热门文章</h3>
<ul>
{% archiveList popularPaginated with type="page" limit="10" order="views desc" %}
{% for article in popularPaginated %}
<li>
<h4><a href="{{ article.Link }}">{{ article.Title }}</a></h4>
<p>{{ article.Description|truncatechars:100 }}</p>
<span class="view-info">浏览量: {{ article.Views }}</span>
</li>
{% empty %}
<li>该分类下暂无热门文章。</li>
{% endfor %}
{% endarchiveList %}
</ul>
{# 分页标签 #}
<div class="pagination-controls">
{% pagination pages with show="5" %}
{# 分页渲染代码与上述相同