如何在文档列表中排除特定分类或多个分类的文章?

📅 👁️ 63

在安企CMS中管理网站内容时,我们常常需要精确控制文章的展示。有时,我们可能希望某个特定分类的文章不出现在常规的文章列表中,例如用于内部通知、测试内容,或者一些只在特定页面展示的推广信息。安企CMS提供了简洁而高效的方法来满足这类需求,让您能够灵活地排除特定分类或多个分类的文章,从而实现更精准的内容呈现。

核心解决方案:灵活运用 archiveList 标签

在安企CMS的模板设计中,archiveList 标签是我们用来调用文章列表的核心工具。它功能强大,能够根据多种条件筛选、排序和展示文章。要实现排除特定分类文章的目的,archiveList 标签提供了一个名为 excludeCategoryId 的参数,专门用于指定不显示的文章分类。

1. 排除单个分类的文章

如果您只想排除一个分类的文章,只需在 archiveList 标签中设置 excludeCategoryId 参数,并指定该分类的唯一ID即可。例如,假设您有一个ID为 5 的分类,其下的文章不希望出现在当前列表中,您的代码可以这样写:

{% archiveList archives with excludeCategoryId="5" limit="10" %}
    {% for item in archives %}
    <li>
        <a href="{{item.Link}}"><h5>{{item.Title}}</h5></a>
        <p>{{item.Description}}</p>
    </li>
    {% empty %}
    <li>当前没有文章可显示。</li>
    {% endfor %}
{% endarchiveList %}

这段代码会从所有文章中筛选出最新的10篇文章,但会跳过所有属于分类ID为 5 的文章。

2. 排除多个分类的文章

如果您需要同时排除多个分类的文章,excludeCategoryId 参数同样能够胜任。您只需将所有要排除的分类ID用英文逗号 , 分隔开即可。例如,要排除ID为 5812 的分类文章,您可以这样操作:

{% archiveList archives with excludeCategoryId="5,8,12" limit="10" %}
    {% for item in archives %}
    <li>
        <a href="{{item.Link}}"><h5>{{item.Title}}</h5></a>
        <p>{{item.Description}}</p>
    </li>
    {% empty %}
    <li>当前没有文章可显示。</li>
    {% endfor %}
{% endarchiveList %}

通过这种方式,您可以在一个 archiveList 标签中,轻松地排除任意数量的不想展示的分类内容。

如何找到分类ID?

要使用 excludeCategoryId 参数,您首先需要知道您希望排除的分类的唯一ID。这非常简单,您可以登录安企CMS后台,进入『内容管理』-『文档分类』页面。在分类列表中,每个分类条目都会清楚地显示其唯一的ID。通常,您也可以在编辑分类时,从浏览器地址栏的URL中找到这个ID(例如:.../category/edit/10,这里的 10 就是分类ID),或者直接查看分类列表中的『ID』列。

与其他 archiveList 参数结合使用

excludeCategoryId 可以与 archiveList 标签的其他参数完美结合,让您的文章列表展示更加精准和灵活。例如,您可能希望显示除特定分类外的所有最新文章,并进行分页:

{% archiveList archives with excludeCategoryId="5,8" type="page" limit="15" order="created_time desc" %}
    {% for item in archives %}
    <li>
        <a href="{{item.Link}}"><h5>{{item.Title}}</h5></a>
        <p>发布时间: {{stampToDate(item.CreatedTime, "2006-01-02")}}</p>
    </li>
    {% endfor %}
{% endarchiveList %}

{# 添加分页功能 #}
{% pagination pages with show="5" %}
    <ul>
        {% if pages.PrevPage %}<li class="prev"><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 class="next"><a href="{{pages.NextPage.Link}}">下一页</a></li>{% endif %}
    </ul>
{% endpagination %}

这段代码将显示除了分类ID为 58 之外的所有文章,按创建时间倒序排列,每页显示15篇文章,并支持分页浏览。

扩展应用:排除特定推荐属性的文章

除了按分类排除文章,安企CMS还提供了按“推荐属性(Flag)”排除文章的功能。如果您的文章被标记了特定的属性(例如:头条[h]推荐[c]幻灯[f] 等),您也可以使用 excludeFlag 参数来避免这些文章出现在列表中。例如,要排除所有被标记为“推荐”属性的文章:

{% archiveList archives with excludeFlag="c" limit="10" %}
    {# 文章列表内容 #}
{% endarchiveList %}

小结

通过 archiveList 标签的 excludeCategoryId 参数,安企CMS为网站运营者提供了极大的灵活性,能够根据实际需求精确控制文章的展示范围。无论是排除单个不常用的分类,还是过滤掉多个含有特定内容的分类,这个功能都让内容管理变得更加高效和便捷,确保您的网站内容能够以最合理、最符合预期的形式呈现给访客。


常见问题 (FAQ)

Q1: 如果我想显示某个大分类下的文章,但同时排除其下某个特定的子分类文章,应该如何操作?

A1: 您可以将大分类的ID指定给 categoryId 参数,然后将要排除的子分类ID指定给 excludeCategoryId 参数。例如,如果您想显示分类ID为 10 的所有文章,但排除其下的子分类ID 15 的文章,可以这样写:{% archiveList archives with categoryId="10" excludeCategoryId="15" %}。此外,如果您只想显示分类 10 下的文章而不包括任何子分类的文章,可以使用 child=false 参数:{% archiveList archives with categoryId="10" child=false %}

Q2: 我设置了 excludeCategoryId,但发现文章没有正常排除,可能是什么原因?

A2: 首先,请检查 excludeCategoryId 参数中填写的分类ID是否正确无误,多个ID之间是否使用了英文逗号 , 分隔。其次,确认您的模板代码是否正确使用了 archiveList 标签以及 excludeCategoryId 参数,并且没有其他更具体的筛选条件(例如直接指定 categoryId 为被排除的分类)覆盖了此排除规则。最后,清除一下网站缓存(如果启用),确保最新的模板代码和数据生效。

Q3: excludeCategoryId 参数是否会影响文章的总数统计?

A3: 是的,excludeCategoryId 参数在筛选文章时,会直接从符合条件的总文章数中排除指定分类的文章。因此,如果您在使用 archiveList 结合分页功能时,排除文章后,分页的总页数和总条目数都会相应减少,因为它们是基于实际显示的文章数量来计算的。

相关文章

如何根据分类ID筛选并循环输出特定分类下的文档列表?

在构建和运营网站时,内容的组织与呈现方式至关重要。尤其是当网站内容日益丰富,如何让访问者迅速找到他们感兴趣的信息,并清晰地浏览特定主题下的所有文章,就成了一个需要精心设计的问题。安企CMS(AnQiCMS)提供了强大且灵活的内容管理能力,让我们可以轻松实现对文档列表的精准控制与展示。今天,我们就来探讨一个常见的需求:如何根据分类ID,筛选并循环输出特定分类下的文档列表

2025-11-08

如何在首页展示最新的N篇文章或产品,并进行分页控制?

## 安企CMS:在首页高效展示最新内容并实现分页的**实践 网站首页作为访客了解站点内容和获取最新信息的重要入口,清晰、有效地展示最新发布的文章或产品至关重要。安企CMS提供了强大且灵活的模板标签,帮助我们轻松实现这一目标,同时还能对内容进行精细化的分页控制,确保用户体验流畅。 ### 核心功能概览:`archiveList` 与 `pagination` 要在首页展示最新的内容

2025-11-08

模板中输出变量时,如何通过过滤器进行内容的安全转义以防止XSS攻击?

在网站内容的管理和展示过程中,确保用户数据的安全是至关重要的一环。特别是当网站需要展示用户提交的内容或从外部源获取的数据时,如何有效防范跨站脚本(XSS)攻击,是每一位网站运营者都需要关注的问题。安企CMS(AnQiCMS)在设计之初就充分考虑了这一点,通过其强大的模板引擎和灵活的过滤器机制,为内容的输出提供了坚实的安全保障。 ### XSS攻击

2025-11-08

如何在AnQiCMS模板中输出当前的日期和时间,并指定格式?

在 AnQiCMS 模板中显示日期和时间,并按照特定格式输出,是网站内容运营中常见的需求。无论是展示文章发布时间、活动截止日期,还是在页脚显示当前的年份,准确且美观的时间信息都能提升用户体验。AnQiCMS 提供了简洁高效的模板标签,让您可以轻松实现这些功能。 接下来,我们将详细探讨如何在 AnQiCMS 模板中输出当前的日期和时间,并指定您需要的格式。 --- ### 一、使用

2025-11-08

如何仅显示某个分类下的文章,而不包含其子分类的文章?

在网站内容管理中,我们经常会遇到这样的需求:希望在某个页面上展示特定分类下的文章,但又不想包含该分类下的子分类文章,以保持内容的纯粹性和聚焦性。例如,您可能有一个“公司新闻”分类,其中包含“企业动态”、“行业资讯”等子分类,但在首页只想展示纯粹的“公司新闻”,而不希望将所有子分类内容混杂进来。 安企CMS作为一款功能强大且灵活的内容管理系统,提供了简洁高效的方式来满足这类精细化的内容展示需求

2025-11-08

如何根据文章的推荐属性(如“头条”、“推荐”)来筛选并展示文章列表?

在安企CMS中,高效的内容管理是网站成功的关键之一。文章推荐属性,作为内容精细化运营的重要一环,能够帮助我们更灵活地展示网站内容,引导用户关注重点信息,从而提升网站的活跃度和转化率。本文将深入探讨如何根据文章的推荐属性(如“头条”、“推荐”)来筛选并展示文章列表,让您的网站内容更具吸引力。 ### 理解安企CMS的文章推荐属性 安企CMS为每一篇发布的文章提供了丰富的推荐属性设置

2025-11-08

如何按照文章的浏览量、发布时间或后台自定义排序来展示文章列表?

在网站运营中,文章列表的展示方式直接影响用户体验和内容触达效率。一个组织良好、能突出重点的文章列表,可以显著提升用户留存和信息获取效率。AnQiCMS作为一个灵活的内容管理系统,提供了强大的文章列表展示功能,不仅能灵活筛选内容,还能根据您的内容策略,自由调整文章的排序方式,让您的网站内容更具吸引力。 ### 核心功能

2025-11-08

如何在文章详情页获取并显示文章的标题、内容、缩略图等核心信息?

在运营网站时,文章详情页是用户了解内容核心价值的关键入口。一个设计良好、信息全面的文章详情页,不仅能提升用户体验,还能有效帮助搜索引擎理解页面内容,从而优化网站的SEO表现。安企CMS(AnQiCMS)提供了强大而灵活的模板标签系统,让您能够轻松获取并呈现文章的所有核心信息。 要获取并显示文章的标题、内容、缩略图等核心信息,我们主要依赖安企CMS的`archiveDetail`模板标签

2025-11-08