如何在内容管理中筛选并显示特定标题或分类的文档列表?

📅 👁️ 67

在内容管理日益成为企业网站核心竞争力的今天,安企CMS(AnQiCMS)以其灵活高效的特性,帮助我们轻松驾驭海量内容。当您需要精准地筛选并展示特定标题、分类或具备特定属性的文档列表时,AnQiCMS 提供了直观且强大的模板标签,让这一过程变得简单而高效。

核心利器:archiveList 标签总览

要在网站前端显示文档列表,我们主要会用到 AnQiCMS 的核心模板标签 archiveList。这个标签功能强大,能够根据多种条件过滤内容,并以列表或分页的形式展示出来。它支持多种参数,让您可以精细控制内容的呈现。

通常,您会看到这样的基本结构来调用文档列表:

{% archiveList archives with type="list" limit="10" %}
    {% for item in archives %}
        {# 在这里展示每个文档的详细信息 #}
    {% empty %}
        <p>该列表没有任何内容。</p>
    {% endfor %}
{% endarchiveList %}

在这段代码中,archives 是我们为文档列表指定的一个变量名,您可以根据自己的喜好来命名。for 循环则会遍历这个列表中的每一个文档(我们称之为 item),并在循环体内展示其内容。如果列表为空,empty 标签里的内容就会显示出来。

依据分类与内容模型筛选

安企CMS 灵活的内容模型设计,允许我们为不同类型的内容(如文章、产品、活动等)创建独立的模型,并为每个模型建立分类体系。当您需要筛选特定分类下的文档时,archiveList 标签的 categoryIdmoduleId 参数就显得尤为重要。

  • 按内容模型筛选 (moduleId):如果您想只显示“文章模型”下的所有文档,而忽略“产品模型”的内容,可以设置 moduleId="1"(假设文章模型的ID为1)。这对于跨模型展示内容时进行区分非常有用。

  • 按分类筛选 (categoryId):当您需要展示某个具体分类下的文档时,只需提供该分类的 ID。例如,categoryId="10" 将显示 ID 为 10 的分类下的所有文档。如果您想同时展示多个分类的内容,可以传入多个 ID,用逗号隔开,例如 categoryId="10,12,15"

  • 排除特定分类 (excludeCategoryId):反之,如果您想显示某个模型下除特定分类之外的所有文档,可以使用 excludeCategoryId="10" 来排除 ID 为 10 的分类。

  • 包含子分类 (child):默认情况下,当您指定一个分类 ID 时,archiveList 会自动包含其所有子分类下的文档。如果您只想显示当前指定分类本身的文档,而不包含其子分类,可以将 child 参数设置为 false,即 child=false

依据文档属性进行内容筛选

除了分类,AnQiCMS 还允许您给文档设置各种“推荐属性”(Flag),这些属性就像给文档打上特殊标签,比如“头条”、“推荐”、“幻灯”等。利用 flag 参数,您可以轻松筛选出具有特定属性的文档:

  • 指定推荐属性 (flag):例如,要筛选出所有被标记为“头条”的文档,可以使用 flag="h"。文档支持的属性值包括:h (头条)、c (推荐)、f (幻灯)、a (特荐)、s (滚动)、p (图片)、j (跳转)。您可以根据需求灵活组合。

  • 排除推荐属性 (excludeFlag):如果您不希望在列表中显示某些特定属性的文档,可以使用 excludeFlag 参数,例如 excludeFlag="s" 将排除所有被标记为“滚动”的文档。

  • 指定作者或上级文档 (userId, parentId):对于多作者网站或具有层级关系的文档(如下属文档),您还可以通过 userIdparentId 参数来筛选特定作者发布的文档,或特定上级文档的下级内容。

实现关键词搜索与高级动态筛选

在许多场景下,访问者需要通过输入关键词来查找内容,或者根据多个自定义条件进行筛选。

  • 关键词搜索 (q):当您需要创建一个搜索结果页面时,archiveList 标签的 q 参数非常实用。通常,我们会将列表类型 type 设置为 page,这样用户在搜索框中输入的关键词(通过 URL 中的 q 参数传递)就会自动被 archiveList 捕获并用于搜索。例如,一个搜索表单提交后,URL 可能是 /search?q=安企CMS,您的模板中的 archiveList 就会自动根据“安企CMS”进行筛选。

  • 高级动态筛选 (archiveFilters):想象一下房产网站,用户可能需要同时根据“房屋类型”、“面积”、“价格区间”等多个条件来筛选房源。这时,archiveFilters 标签就能派上用场。它会根据您在后台为内容模型配置的自定义字段,自动生成一系列筛选条件及其对应的链接。您只需将 archiveFilters 标签与 archiveList 标签(设置为 type="page")结合使用,即可为用户提供强大的动态筛选体验。

    在模板中,您可以这样使用 archiveFilters

    {% archiveFilters filters with moduleId="1" allText="不限" %}
        {% for item in filters %}
        <ul>
            <li>{{ item.Name }}: </li>
            {% for val in item.Items %}
            <li class="{% if val.IsCurrent %}active{% endif %}"><a href="{{ val.Link }}">{{ val.Label }}</a></li>
            {% endfor %}
        </ul>
        {% endfor %}
    {% endarchiveFilters %}
    

    这段代码会循环显示所有可筛选的参数(如“房屋类型”),以及每个参数下的具体选项(如“住宅”、“商铺”)。当用户点击某个选项时,页面 URL 会自动带上相应的筛选参数,并由 archiveList 标签捕获并应用。

内容展示与分页控制

筛选出合适的文档后,如何美观地展示它们,并提供友好的分页体验,同样重要。

  • 遍历与显示内容详情:在 archiveListfor 循环中,item 变量代表了当前正在处理的文档。您可以通过 item.Title 获取文档标题,item.Link 获取文档链接,item.Description 获取文档简介,item.Thumb 获取文档缩略图等。对于时间,可以使用 {{ stampToDate(item.CreatedTime, "2006-01-02") }} 来格式化显示。如果文档简介或内容包含 HTML 标签,记得加上 |safe 过滤器以避免转义。

    例如: “`twig {% for item in archives %}

    <h2><a href="{{ item.Link }}">{{ item.Title }}</a></h2>
    {% if item.Thumb %}
        <img src="{{ item.Thumb }}" alt="{{ item.Title }}">
    {% endif %}
    <p>{{ item.Description|safe }}</p>
    <footer>
        <span>发布日期:{{ stampToDate(item.CreatedTime, "2006年01月02日") }}</span>
        <span>浏览量:{{ item.Views }}</span>
        {% if item.CategoryId %}
            <span>分类:{% categoryDetail with name="Title" id=item.CategoryId %}</span>
        {% endif %}
    </footer>
    

    </article

相关文章

如何显示某个特定Tag下的所有文档列表?

在安企CMS中管理和展示内容,标签(Tag)无疑是一个极为灵活且强大的工具。它能帮助我们对内容进行多维度分类,不仅方便访客查找感兴趣的主题,也能有效提升网站的SEO表现。今天,我们就来深入探讨,如何在您的网站上优雅地显示某个特定标签(Tag)下的所有文档列表。 ### 后台准备:确保标签设置妥当 在开始前端的显示之前,我们需要确保后台的标签设置是完整且规范的。 首先

2025-11-08

安企CMS如何配置和显示文章Tag标签列表?

在网站运营中,Tag标签(或称关键词标签)是一种非常实用的内容组织方式,它能帮助用户快速找到相关内容,同时也能提升网站内容的SEO效果。安企CMS(AnQiCMS)提供了完善的Tag标签配置和显示功能,让管理和展示这些标签变得轻松高效。下面,我们就来详细了解如何在AnQiCMS中设置和利用这些标签。 --- ### 一、后台配置与管理文章Tag标签 在AnQiCMS中

2025-11-08

如何显示用户留言或文章评论列表,并处理审核状态?

在网站运营中,用户留言和文章评论是促进互动、提升内容价值的重要组成部分。对于安企CMS的用户来说,合理地展示这些用户生成内容,并有效地管理它们的审核状态,是确保网站内容质量和用户体验的关键。下面我们将详细探讨在安企CMS中如何实现这一目标。 ### 了解安企CMS中的评论与留言管理 安企CMS为用户提供了方便的内容评论和网站留言管理功能。在后台管理界面

2025-11-08

如何在留言或评论功能中显示验证码?

在网站运营中,留言和评论功能是与用户互动的重要渠道,但也常常成为垃圾信息和恶意灌水的重灾区。为了维护一个清净、高质量的交流环境,为这些互动功能添加验证码就显得尤为重要。安企CMS深知这一点,并为此提供了便捷的解决方案。 那么,如何在安企CMS的留言或评论功能中显示验证码,有效抵御垃圾信息呢?这主要分为两个核心步骤:首先在后台启用验证码功能,然后将验证码元素集成到前端模板中。 ### 第一步

2025-11-08

如何在前端页面中显示Markdown格式编辑的内容(包括数学公式和流程图)?

安企CMS为用户提供了强大且灵活的内容管理能力,其中对Markdown格式的支持,极大地提升了内容创作者的效率。无论是撰写技术文章需要展示复杂的数学公式,还是产品文档中需要清晰的流程图,安企CMS都能帮助您在前端页面上美观地呈现这些内容。 要实现这一目标,我们需要分几个步骤进行,从后台设置到前端模板调整,确保内容能够被正确解析和渲染。 ### 第一步:在后台启用Markdown编辑器 首先

2025-11-08

安企CMS如何配置URL伪静态规则以优化链接显示?

网站的链接,就像是网站的门牌号,清晰、有规律的门牌号不仅方便访客记忆和分享,对搜索引擎来说,更是理解网站内容结构、提升收录和排名效率的关键。这种将动态链接优化为看起来像静态文件的技术,我们称之为“伪静态”。安企CMS深谙此道,为用户提供了强大而灵活的伪静态配置能力,旨在帮助网站在搜索引擎中获得更佳表现,同时提升用户浏览体验。 ### 伪静态的价值:为何不可忽视? 在网站运营中

2025-11-08

如何在HTML内容输出时避免XSS攻击并安全显示?

在网站内容管理中,确保信息的安全显示,特别是防范跨站脚本(XSS)攻击,是每一位内容创作者和网站管理员都必须面对的重要课题。XSS攻击利用网站的漏洞,将恶意代码注入到网页中,当其他用户访问该网页时,恶意代码便会在用户的浏览器上执行,从而可能窃取用户信息、劫持会话甚至篡改网页内容,对网站和用户造成严重危害。幸运的是,AnQiCMS 在设计之初就充分考虑了内容安全,为我们提供了多重防护措施

2025-11-08

如何将长文本内容截断并显示省略号?

在日常网站运营中,我们经常会遇到这样的情况:文章详情页内容丰富,但列表页或推荐模块为了版面整洁,需要显示内容的精简版本,通常是截取一部分文本并在末尾加上省略号。安企CMS深知内容展示的重要性,提供了非常便捷且强大的工具来处理这类需求。 让我们一起来看看如何在安企CMS中,优雅地实现长文本内容的截断并显示省略号,让网站界面既美观又专业。 ### 内容截断的需求与价值 在许多内容展示场景

2025-11-08