如何使用AnQiCMS的文档列表标签展示特定分类或推荐属性的内容?

在安企CMS中,高效地管理和展示网站内容是提升用户体验和网站运营效果的关键。无论是想在首页展示特定分类的最新文章,还是突出显示带有“推荐”属性的产品,AnQiCMS提供的文档列表标签(archiveList)都是实现这些需求的核心工具。它灵活的参数配置,让我们能够精准地控制内容调取,将技术细节转化为触手可及的运营策略。

理解文档列表标签 archiveList

archiveList 标签是AnQiCMS模板系统中用于调取并展示文档(包括文章、产品等内容模型)列表的强大功能。通过精心配置其参数,我们可以轻松实现各类定制化的内容展示需求。

这个标签的基本结构是这样的:

{% archiveList 变量名 with 参数 %}
    {% for item in 变量名 %}
        {# 在这里展示每个文档项的具体内容 #}
    {% empty %}
        {# 如果没有内容,这里可以显示提示信息 #}
    {% endfor %}
{% endarchiveList %}

其中,变量名(例如 archives)是我们为调取到的文档列表指定的一个名称,方便在循环中引用。with 参数 则是定义内容筛选和排序规则的关键所在。

精准筛选:控制内容的来源与特性

要展示特定分类或具有推荐属性的内容,我们需要重点关注 archiveList 标签的几个核心参数:

  1. 指定内容模型 (moduleId) 网站上可能存在多种内容类型,如文章、产品、案例等。这些在AnQiCMS中被定义为不同的“内容模型”。通过 moduleId 参数,我们可以明确告诉系统需要调取哪个内容模型下的文档。 例如,如果想获取文章列表,可以设置 moduleId="1";如果是产品列表,则可能设置为 moduleId="2"(具体的moduleId可以在后台“内容模型”管理中查看)。

  2. 按分类调取 (categoryId) 这是最常用的内容筛选方式之一。如果你希望在一个页面上展示特定分类下的所有文章,或者首页显示某个分类的最新动态,categoryId 参数就能派上用场。 你可以指定单个分类的ID,例如 categoryId="5";也可以同时指定多个分类,用逗号隔开,如 categoryId="5,8,12"。 值得注意的是,如果你的 archiveList 标签被放置在某个分类页面内,系统默认会尝试读取当前分类的ID。如果你想阻止这种自动读取行为,可以明确设置 categoryId="0"

  3. 展示推荐属性内容 (flag) AnQiCMS为文档内容提供了丰富的“推荐属性”,这些属性就像内容的“标签”,可以用来标记内容的特殊性。例如,你可以将重要的文章标记为“头条”,将热销产品标记为“推荐”。这些属性包括:头条[h]推荐[c]幻灯[f]特荐[a]滚动[s]加粗[h]图片[p]跳转[j]。 要展示带有特定推荐属性的内容,只需在 flag 参数后跟上对应的属性字母即可。例如,flag="c" 将调取所有被标记为“推荐”的内容。

  4. 内容排序 (order) 内容的展示顺序同样重要。order 参数允许你根据不同的标准对内容进行排序。

    • order="id desc":按照文档ID降序排列,通常用于展示最新发布的内容。
    • order="views desc":按照浏览量降序排列,适合展示热门或高关注度的内容。
    • order="sort desc":按照后台自定义的排序值降序排列,如果你在后台为文档设置了手动排序,这个参数将非常有用。
  5. 限制显示数量 (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篇文章

如果你想在一个专题页上,显示该分类下最受欢迎的文章,可以结合 categoryIdorder="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)

  1. 问:archiveList 标签中的 categoryId 参数可以指定多个分类吗?如何指定? 答:是的,categoryId 参数可以指定多个分类。您只需用英文逗号 , 将不同的分类ID隔开即可,例如 categoryId="1,5,8"。这样,archiveList 标签就会调取这几个指定分类下的内容。

  2. 问:我如何在 archiveList 标签中调用自定义内容模型字段(例如,文章作者或产品价格)? 答:archiveList 标签本身在循环中会提供一些标准字段(如 TitleLink)。要调用自定义字段,您需要在 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 循环遍历更具通用性。

  3. 问:如果我在后台为文章设置了“推荐”属性(例如“推荐[c]”),前台如何通过 archiveList 标签来展示这些推荐文章? 答:要展示具有特定“推荐属性”的文章,您需要在 archiveList 标签中设置 flag 参数。例如,要展示所有被标记为“推荐[c]”的文章,可以这样写:{% archiveList recommendedArticles with moduleId="1" flag="c" limit="10" %}。这样就可以筛选出并展示带有该推荐属性的内容。