`tagList`和`tagDataList`标签如何管理和显示文档标签及关联文档列表?

在内容管理中,标签(Tag)是连接内容、提升用户体验和优化搜索引擎表现的重要桥梁。安企CMS深知其重要性,提供了强大的标签管理功能,并通过tagListtagDataList这两个核心标签,让内容运营者能够灵活地展示和管理文档标签及其关联内容。

标签:内容分类与发现的利器

在安企CMS中,标签不仅仅是简单的关键词,它是一套精细化的内容组织方式。您可以在发布文档时为每篇文章、产品添加一个或多个标签,也可以在后台的“内容管理”模块下单独创建和管理标签。每个标签都可以拥有独立的名称、自定义URL、SEO标题、关键词和描述,这为标签页面的搜索引擎优化打下了坚实的基础。通过标签,用户可以快速发现与特定主题相关的所有内容,而搜索引擎也能更好地理解网站的内容结构和主题关联性,从而提升网站的可见度。

tagList:构建灵活的标签展示方式

当您希望在网站的任何位置,如侧边栏、页脚或专门的标签索引页(通常是tag/index.html),展示一系列热门标签、相关标签或所有标签时,tagList标签便是您的理想选择。

它的基本用途是:获取并循环展示网站上的标签集合。

在使用tagList时,您可以通过一些参数来精细控制展示的标签范围:

  • limit: 控制显示标签的数量。例如,limit="10"将只显示10个标签。如果您想从第2个标签开始显示5个,可以使用limit="2,5"这样的偏移模式。
  • itemId: 如果您希望显示与某个特定文档关联的标签,可以传入该文档的ID。如果设置为itemId="0",则会获取所有标签,而不会自动关联当前页面的文档。
  • categoryId: 当您需要筛选属于特定分类下的标签时,可以使用此参数,例如categoryId="1,2,3"来显示分类ID为1、2、3的标签。
  • letter: 如果您想按字母顺序筛选标签,比如只显示以”A”开头的标签,可以使用letter="A"
  • type="page": 这个参数非常重要,它允许您在标签索引页(tag/index.html)上实现标签列表的分页显示。

一个简单的tagList标签云示例:

<div>
    <h4>热门标签</h4>
    {% tagList tags with limit="20" %}
    {% for item in tags %}
        <a href="{{item.Link}}" title="{{item.Description}}">{{item.Title}}</a>
    {% endfor %}
    {% endtagList %}
</div>

在标签索引页实现分页显示所有标签:

当在tag/index.html模板中使用type="page"参数时,您可以结合pagination标签来实现标签列表的分页:

<div>
    <h1>所有标签</h1>
    {% tagList tags with type="page" limit="30" %}
    <ul>
    {% for item in tags %}
        <li>
            <a href="{{item.Link}}">
                <h5>{{item.Title}}</h5>
                <div>{{item.Description}}</div>
            </a>
        </li>
    {% empty %}
        <li>目前没有标签可供显示。</li>
    {% endfor %}
    </ul>
    {% endtagList %}

    {# 标签列表分页代码 #}
    <div>
        {% pagination pages with show="5" %}
        {# 首页、上一页、中间页、下一页、尾页等导航元素 #}
        {% for pageItem in pages.Pages %}
            <a class="{% if pageItem.IsCurrent %}active{% endif %}" href="{{pageItem.Link}}">{{pageItem.Name}}</a>
        {% endfor %}
        {% endpagination %}
    </div>
</div>

通过tagList,您可以轻松地在网站的各个角落展示标签,引导用户深入探索感兴趣的主题。

tagDataList:展示标签下的关联文档

当用户点击一个标签,或者您需要在一个标签的详情页(通常是tag/list.htmltag_list.html)展示该标签下的所有文档时,tagDataList标签就派上用场了。

它的核心作用是:根据指定的标签ID,获取并展示所有与之关联的文档列表。

tagDataList也提供了一系列参数来帮助您控制文档的获取和显示:

  • tagId: 这是tagDataList最关键的参数,您需要明确指定要获取哪个标签下的文档。在标签详情页,这个ID通常会自动从URL中获取。
  • moduleId: 如果您只想显示特定内容模型(如文章模型、产品模型)下的文档,可以使用此参数进行筛选。
  • order: 控制文档的排序方式,例如order="id desc"(按ID降序,即最新发布)或order="views desc"(按浏览量降序,即最热门)。
  • limit: 控制显示文档的数量,同样支持偏移模式。
  • type="page": 允许您在标签文档列表页实现关联文档的分页显示。
  • siteId: 在多站点环境中,用于指定从哪个站点获取数据。

一个展示特定标签下文档列表的示例:

{# 在标签详情页,tagId 通常会自动从URL获取,或者您可以通过 tagDetail 标签获取 #}
{% tagDetail currentTag with name="Id" %} {# 获取当前页面的标签ID #}

<div>
    <h1>标签:{% tagDetail with name="Title" %}</h1>
    <p>{% tagDetail with name="Description" %}</p>

    {% tagDataList archives with tagId=currentTag type="page" limit="10" order="id desc" %}
    {% for item in archives %}
        <div class="document-item">
            <a href="{{item.Link}}">
                {% if item.Thumb %}<img src="{{item.Thumb}}" alt="{{item.Title}}">{% endif %}
                <h3>{{item.Title}}</h3>
                <p>{{item.Description}}</p>
                <span>发布时间:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                <span>浏览量:{{item.Views}}</span>
            </a>
        </div>
    {% empty %}
        <p>该标签下暂无相关文档。</p>
    {% endfor %}
    {% endtagDataList %}

    {# 关联文档列表分页代码 #}
    <div>
        {% pagination pages with show="5" %}
        {# 分页导航元素 #}
        {% for pageItem in pages.Pages %}
            <a class="{% if pageItem.IsCurrent %}active{% endif %}" href="{{pageItem.Link}}">{{pageItem.Name}}</a>
        {% endfor %}
        {% endpagination %}
    </div>
</div>

通过tagDataList,您可以为每个标签创建动态且内容丰富的着陆页,让用户能够便捷地浏览感兴趣主题下的所有文档,极大地提升了内容的可发现性。

整合与应用:构建高效的标签生态

tagListtagDataList这两个标签通常协同工作,共同构建了一个高效的标签内容生态。您可以:

  1. 在首页或侧边栏使用tagList展示热门标签或推荐标签,吸引用户点击。
  2. 当用户点击某个标签后,会跳转到该标签的详情页(tag/list.html),在该页面中,您可以利用tagDetail标签获取当前标签的详细信息(如名称、描述、SEO数据)作为页面标题和简介,然后使用tagDataList动态加载并展示与该标签相关的所有文档。

这种组合不仅增强了网站的内部链接结构,对搜索引擎优化大有裨益,同时也为用户提供了清晰的导航路径,让他们可以更轻松地发现和消费相关内容