在安企CMS中,高效地管理和展示网站内容是提升用户体验和网站运营效果的关键。无论是想在首页展示特定分类的最新文章,还是突出显示带有“推荐”属性的产品,AnQiCMS提供的文档列表标签(archiveList)都是实现这些需求的核心工具。它灵活的参数配置,让我们能够精准地控制内容调取,将技术细节转化为触手可及的运营策略。
理解文档列表标签 archiveList
archiveList 标签是AnQiCMS模板系统中用于调取并展示文档(包括文章、产品等内容模型)列表的强大功能。通过精心配置其参数,我们可以轻松实现各类定制化的内容展示需求。
这个标签的基本结构是这样的:
{% archiveList 变量名 with 参数 %}
{% for item in 变量名 %}
{# 在这里展示每个文档项的具体内容 #}
{% empty %}
{# 如果没有内容,这里可以显示提示信息 #}
{% endfor %}
{% endarchiveList %}
其中,变量名(例如 archives)是我们为调取到的文档列表指定的一个名称,方便在循环中引用。with 参数 则是定义内容筛选和排序规则的关键所在。
精准筛选:控制内容的来源与特性
要展示特定分类或具有推荐属性的内容,我们需要重点关注 archiveList 标签的几个核心参数:
指定内容模型 (
moduleId) 网站上可能存在多种内容类型,如文章、产品、案例等。这些在AnQiCMS中被定义为不同的“内容模型”。通过moduleId参数,我们可以明确告诉系统需要调取哪个内容模型下的文档。 例如,如果想获取文章列表,可以设置moduleId="1";如果是产品列表,则可能设置为moduleId="2"(具体的moduleId可以在后台“内容模型”管理中查看)。按分类调取 (
categoryId) 这是最常用的内容筛选方式之一。如果你希望在一个页面上展示特定分类下的所有文章,或者首页显示某个分类的最新动态,categoryId参数就能派上用场。 你可以指定单个分类的ID,例如categoryId="5";也可以同时指定多个分类,用逗号隔开,如categoryId="5,8,12"。 值得注意的是,如果你的archiveList标签被放置在某个分类页面内,系统默认会尝试读取当前分类的ID。如果你想阻止这种自动读取行为,可以明确设置categoryId="0"。展示推荐属性内容 (
flag) AnQiCMS为文档内容提供了丰富的“推荐属性”,这些属性就像内容的“标签”,可以用来标记内容的特殊性。例如,你可以将重要的文章标记为“头条”,将热销产品标记为“推荐”。这些属性包括:头条[h]、推荐[c]、幻灯[f]、特荐[a]、滚动[s]、加粗[h]、图片[p]、跳转[j]。 要展示带有特定推荐属性的内容,只需在flag参数后跟上对应的属性字母即可。例如,flag="c"将调取所有被标记为“推荐”的内容。内容排序 (
order) 内容的展示顺序同样重要。order参数允许你根据不同的标准对内容进行排序。order="id desc":按照文档ID降序排列,通常用于展示最新发布的内容。order="views desc":按照浏览量降序排列,适合展示热门或高关注度的内容。order="sort desc":按照后台自定义的排序值降序排列,如果你在后台为文档设置了手动排序,这个参数将非常有用。
限制显示数量 (
limit) 为了避免页面内容过多,limit参数可以控制显示文档的数量。比如limit="10"会只显示最新的10条内容。当需要进行分页显示时,limit参数也与分页标签 (pagination) 配合使用。
实践应用:场景示例
让我们通过几个具体的场景,看看如何运用这些参数:
场景一:在首页展示“公司新闻”分类下的最新5篇文章
假设你的“公司新闻”分类ID为 10,内容模型为 1 (文章模型)。
要调取这个分类下的最新5篇文章,你可以这样编写代码:
<div class="news-section">
<h3>公司新闻</h3>
<ul>
{% archiveList latestNews with moduleId="1" categoryId="10" order="id desc" limit="5" %}
{% for item in latestNews %}
<li>
<a href="{{ item.Link }}" title="{{ item.Title }}">
{{ item.Title }}
</a>
<span>发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
</li>
{% empty %}
<li>暂无公司新闻。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
这段代码会从文章模型中,找到分类ID为10的最新5篇文章,并列出它们的标题和发布日期。
场景二:在产品列表页侧边栏显示3款“推荐”产品
假设产品的内容模型ID为 2。你想展示被标记为“推荐”的产品(flag="c")。
<div class="recommended-products">
<h4>推荐产品</h4>
<ul>
{% archiveList recommendedProds with moduleId="2" flag="c" limit="3" %}
{% for item in recommendedProds %}
<li>
<a href="{{ item.Link }}" title="{{ item.Title }}">
{% if item.Thumb %}<img src="{{ item.Thumb }}" alt="{{ item.Title }}"/>{% endif %}
<p>{{ item.Title }}</p>
</a>
</li>
{% empty %}
<li>暂无推荐产品。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
这里我们通过 flag="c" 过滤出推荐产品,并显示其缩略图和标题。
场景三:展示特定分类下浏览量最高的3篇文章
如果你想在一个专题页上,显示该分类下最受欢迎的文章,可以结合 categoryId 和 order="views desc":
<div class="top-articles">
<h3>热门文章</h3>
<ul>
{% archiveList hotArticles with moduleId="1" categoryId="current" order="views desc" limit="3" %}
{% for item in hotArticles %}
<li>
<a href="{{ item.Link }}" title="{{ item.Title }}">
{{ item.Title }}
</a>
<span>浏览量:{{ item.Views }}</span>
</li>
{% empty %}
<li>暂无热门文章。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
这里categoryId="current"是一个假设,表示当前分类的ID(在分类详情页通常会自动获取)。如果不是在分类详情页,你需要替换为具体的分类ID。
提升内容运营效果的诀窍
- 灵活运用推荐属性: 网站运营中,内容分发和突出重点至关重要。AnQiCMS的推荐属性提供了极大的灵活性,让你可以根据运营活动、热点事件或内容重要性,随时调整内容的优先级。
- 优化内容模型结构: 结合自定义内容模型字段,
archiveList标签还能调取更多个性化数据(如产品价格、作者信息等),让内容展示更加丰富和精准。通过archiveParams标签,可以在循环中进一步获取这些额外字段。 - 合理规划分类体系: 清晰的分类不仅方便用户查找,也让
categoryId参数的运用更加直观有效。 - 兼顾性能与体验:
limit参数的使用能有效控制每次加载的内容量,配合分页(当type="page"时),可以避免页面过长导致加载缓慢,提升用户体验。
通过熟练掌握 archiveList 标签的各种参数组合,你将能够在AnQiCMS的加持下,轻松构建出内容丰富、布局灵活、符合运营策略的网站,让内容发挥出最大的价值。
常见问题 (FAQ)
问:
archiveList标签中的categoryId参数可以指定多个分类吗?如何指定? 答:是的,categoryId参数可以指定多个分类。您只需用英文逗号,将不同的分类ID隔开即可,例如categoryId="1,5,8"。这样,archiveList标签就会调取这几个指定分类下的内容。问:我如何在
archiveList标签中调用自定义内容模型字段(例如,文章作者或产品价格)? 答:archiveList标签本身在循环中会提供一些标准字段(如Title、Link)。要调用自定义字段,您需要在archiveList循环内部,针对每个item使用archiveParams标签来获取。例如:{% archiveList archives with moduleId="1" limit="5" %} {% for item in archives %} <h3>{{ item.Title }}</h3> {% archiveParams params with id=item.Id %} {% for param in params %} {% if param.FieldName == "author" %} {# 假设您自定义了一个字段名为 "author" #} <p>作者: {{ param.Value }}</p> {% endif %} {% endfor %} {% endarchiveParams %} {% endfor %} {% endarchiveList %}如果您自定义字段时设定了英文调用字段(如
author),也可以尝试直接使用{{ item.author }}调用,但通过archiveParams循环遍历更具通用性。问:如果我在后台为文章设置了“推荐”属性(例如“推荐[c]”),前台如何通过
archiveList标签来展示这些推荐文章? 答:要展示具有特定“推荐属性”的文章,您需要在archiveList标签中设置flag参数。例如,要展示所有被标记为“推荐[c]”的文章,可以这样写:{% archiveList recommendedArticles with moduleId="1" flag="c" limit="10" %}。这样就可以筛选出并展示带有该推荐属性的内容。