如何获取和显示指定Tag关联的所有文档列表?

📅 👁️ 68

在安企CMS中管理内容,除了通过分类来组织,灵活运用“标签”(Tag)功能也是提升网站内容聚合能力和用户体验的关键。标签能够将不同分类、不同模型但主题相关的文档串联起来,为访客提供更多发现内容的入口。那么,具体如何获取并展示这些与指定标签关联的所有文档列表呢?接下来,我们将深入探讨这一实用技巧。

理解安企CMS的标签体系

安企CMS的标签设计非常灵活,它不依附于特定的分类或模型,可以跨越内容类型,将相似主题的文档关联起来。例如,一篇关于“SEO优化”的文章和一篇关于“SEO工具”的产品介绍,虽然分属不同内容模型,但都可以打上“SEO”这个标签,方便用户通过“SEO”标签一览所有相关内容。

在安企CMS的模板系统中,有几个与标签密切相关的标签,它们共同构建了标签内容展示的基础:

  • tagList 标签: 用于获取网站中的标签列表,例如显示热门标签或当前文档的相关标签。
  • tagDetail 标签: 用于获取某个具体标签的详细信息,比如标签名称、描述等,非常适合在标签详情页使用。
  • tagDataList 标签: 这正是我们今天的主角,它专门用于获取与指定标签关联的文档列表。

通过这几个标签的组合使用,我们可以轻松实现各种标签内容聚合展示的需求。

核心:如何获取指定Tag关联的文档列表

要获取指定标签关联的所有文档,最直接有效的方式就是使用 tagDataList 标签。这个标签设计得非常直观,只需告诉它你关注的是哪个标签,它就能为你列出所有相关的文档。

tagDataList 标签的基本用法

{% tagDataList archives with tagId="1" type="page" limit="10" %}
    {% for item in archives %}
        <li>
            <a href="{{item.Link}}">
                <h5>{{item.Title}}</h5>
                <p>{{item.Description}}</p>
                <div>
                    <span>分类:{% categoryDetail with name="Title" id=item.CategoryId %}</span>
                    <span>发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                    <span>浏览量:{{item.Views}}</span>
                </div>
            </a>
            {% if item.Thumb %}
            <a href="{{item.Link}}">
                <img alt="{{item.Title}}" src="{{item.Thumb}}">
            </a>
            {% endif %}
        </li>
    {% empty %}
        <li>当前标签下还没有任何文档。</li>
    {% endfor %}
{% endtagDataList %}

在上面的代码片段中:

  • tagDataList archives:我们定义了一个变量 archives 来存储获取到的文档列表。
  • tagId="1":这是最关键的参数,它指定了我们想要获取哪个标签下的文档。你需要将 "1" 替换为目标标签的实际ID。
  • type="page":这个参数表示我们希望以分页的形式来显示文档列表,这样后续可以结合 pagination 标签实现分页导航。如果不需要分页,只想获取固定数量的列表,可以使用 type="list"
  • limit="10":指定每页显示10条文档。
  • {% for item in archives %}:通过 for 循环遍历 archives 变量中的每一篇文档。在循环内部,item 变量就代表了当前正在处理的文档对象,你可以通过 item.Titleitem.Linkitem.Description 等来访问文档的各项属性。
  • {{stampToDate(item.CreatedTime, "2006-01-02")}}:文档的 CreatedTime 是时间戳,我们需要用 stampToDate 过滤器将其格式化成可读的日期格式。
  • {% empty %}:这是一个非常实用的结构,当 archives 列表为空时(即没有找到任何相关文档),它会显示 {% empty %} 块内的内容,避免页面空白。

实战:在Tag详情页显示文档列表

在安企CMS中,通常会为标签专门创建一个页面来展示该标签下的所有文档,比如 /template/default/tag/list.html(或自定义的标签模板)。在这种页面上,获取当前标签关联的文档列表会更加便捷,因为 tagDataList 标签会自动识别当前页面的标签ID。

下面是一个完整的示例,展示如何在标签详情页(假设页面URL中包含tagIdtoken)显示标签信息及其关联的文档列表:

”`twig {% extends ‘base.html’ %} {# 继承基础模板,确保页面结构完整 #}

{% block title %}

<title>{% tdk with name="Title" siteName=true %} - 安企CMS</title>

{% endblock %}

{% block content %}

<div class="tag-header">
    <h1>标签:{% tagDetail with name="Title" %}</h1>
    <p class="tag-description">{% tagDetail with name="Description" %}</p>
    <span class="tag-letter">首字母:{% tagDetail with name="FirstLetter" %}</span>
</div>

<div class="tag-documents">
    <h2>“{% tagDetail with name="Title" %}”相关文档</h2>
    <ul>
        {% tagDataList archives with type="page" limit="10" order="id desc" %} {# 默认获取当前标签文档,并按ID倒序 #}
            {% for item in archives %}
            <li>
                <h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
                {% if item.Thumb %}
                    <img src="{{item.Thumb}}" alt="{{item.Title}}" style="float: left; margin-right: 15px; width: 120px; height: 90px; object-fit: cover;">
                {% endif %}
                <p>{{item.Description}}</p>
                <div class="doc-meta">
                    <span>分类:<a href="{% categoryDetail with name='Link' id=item.CategoryId %}">{% categoryDetail with name='Title' id=item.CategoryId %}</a></span>
                    <span>发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                    <span>浏览量:{{item.Views}}</span>
                </div>
                <div style="clear: both;"></div>
            </li>
            {% empty %}
            <li>非常抱歉,当前标签下暂时没有找到任何文档。</li>
            {% endfor %}
        {% endtagDataList %}
    </ul>

    {# 分页导航 #}
    <div class="pagination-wrapper">
        {% pagination pages with show="5" %}
            <ul>
                {% if pages.FirstPage %}
                    <li {% if pages.FirstPage.IsCurrent %}class="active"{% endif %}><a href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a></li>
                {% endif %}
                {% if pages.PrevPage %}
                    <li><a href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a></li>
                {% endif %}
                {% for p in pages.Pages %}
                    <li {% if p.IsCurrent %}class="active"{% endif %}><a href="{{p.Link}}">{{p.Name}}</a></li>
                {% endfor %}
                {% if pages.NextPage %}
                    <li><a href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a></li>
                {% endif %}
                {% if pages.LastPage %}
                    <li {% if pages.LastPage.IsCurrent %}class="active"{% endif %}><a href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a></li>
                {% endif %}
            </ul>
        {%

相关文章

如何获取和显示指定文档的自定义参数(如作者、来源)?

在使用安企CMS管理您的网站内容时,您可能会发现仅仅依靠默认的标题、内容、摘要等字段无法完全满足个性化的展示需求。例如,您希望在文章详情页显示“作者”和“来源”信息,或者在产品页面展示“材质”和“尺寸”等特定参数。安企CMS提供了强大的自定义参数功能,让您可以轻松地为不同类型的文档(如文章、产品)添加、管理并显示这些个性化信息。 本文将详细介绍如何在安企CMS中获取和显示指定文档的自定义参数

2025-11-08

如何在文章列表页面显示相关文档或搜索结果?

在网站运营中,如何让访问者更快地找到他们感兴趣的内容,或是在浏览完一篇内容后,能无缝地发现更多相关信息,是提升用户体验和网站粘性的关键。安企CMS(AnQiCMS)提供了强大而灵活的模板标签,能够帮助我们轻松实现在文章列表页面显示相关文档或搜索结果,从而构建一个更加智能和互动的网站。 ### 巧妙运用内容列表标签,呈现动态信息 安企CMS的核心优势之一在于其高度可定制的模板系统

2025-11-08

如何实现文章列表的分页显示并限制每页数量?

在网站运营中,尤其是管理大量内容时,文章列表的分页显示是一个不可或缺的功能。它不仅能让用户浏览内容更加便捷,避免单页加载过多数据导致速度变慢,还能提高网站的整体用户体验和SEO友好性。在安企CMS中,实现文章列表的分页显示并灵活控制每页数量,操作起来非常直观。 接下来,我们将一起探索如何在安企CMS的模板中实现文章列表的分页功能,并限制每页显示的文章数量。 --- ### 高效管理内容

2025-11-08

如何通过文档参数筛选标签,实现多条件的列表内容组合显示?

在内容运营中,我们常常需要展示不同主题、不同属性的内容列表,并允许访问者根据自身需求进行多条件筛选,例如一个房产网站可能需要按“房屋类型”、“所在区域”、“面积范围”等多维度组合筛选房源。如果每次都通过人工组织或开发定制,不仅效率低下,也难以维护。安企CMS(AnQiCMS)提供了一套灵活且强大的文档参数筛选机制,能够帮助我们轻松实现这种多条件的列表内容组合显示。 接下来

2025-11-08

如何获取并显示网站的友情链接列表?

在网站运营中,友情链接扮演着连接彼此、促进流量、提升搜索引擎排名的重要角色。一个维护良好、显示清晰的友情链接区域,不仅能体现网站的开放性,也能为用户提供更多有价值的跳转路径。安企CMS(AnQiCMS)为用户提供了便捷的友情链接管理功能,让您能够轻松获取并在网站上展示这些链接。 ### 管理您的友情链接:后端设置 在着手前端展示之前,我们需要确保友情链接已经在安企CMS的后台进行了配置。通常

2025-11-08

如何在评论或留言表单中添加并显示验证码以防止垃圾信息?

在运营网站时,垃圾评论和恶意留言总是让人头疼的问题,它们不仅影响用户体验,还可能损害网站的专业形象。幸运的是,安企CMS提供了一种简单有效的方式来解决这个问题——那就是在评论或留言表单中添加验证码。这能大大提升网站的安全性,过滤掉大部分自动化垃圾信息。 下面,我们来详细了解如何在安企CMS中,为你的评论和留言表单添加验证码。这个过程可以分为两步,非常直观且易于操作。 ### 第一步

2025-11-08

如何获取和显示特定分类的详情信息,包括描述、内容和Banner图?

在运营网站时,我们经常需要为不同的分类页面展示独特的内容,比如一个产品分类可能有详细的介绍和醒目的Banner图,而一个新闻分类则更侧重于简洁的描述。安企CMS提供了灵活的机制,让我们能够轻松获取并展示特定分类的详情信息,包括描述、内容和Banner图。 ### 后端设置是基础:为分类丰富内容 在前端展示分类详情之前,我们需要在安企CMS后台为分类填充这些信息

2025-11-08

如何实现多级分类的嵌套显示,并在模板中判断是否有子分类?

在构建网站时,清晰、有组织的内容结构是提升用户体验和SEO表现的关键。安企CMS(AnQiCMS)凭借其灵活的内容模型和强大的模板引擎,能够帮助我们轻松实现复杂的多级分类嵌套显示,并进行子分类判断,从而创建出高度定制化的导航和内容布局。 ### 后端设置:构建分类层级 在安企CMS的后台,分类管理功能(通常位于“内容管理”下方的“文档分类”菜单)是实现多级分类的基础。 首先

2025-11-08