轻松展示文档关联标签:AnQiCMS 的 tagList 标签深度解析
在内容管理中,标签(Tag)扮演着至关重要的角色。它们不仅能帮助我们更好地组织内容,提升网站的内部链接结构,还能在搜索引擎优化(SEO)方面发挥巨大作用,让用户和搜索引擎更容易发现相关信息。AnQiCMS 充分考虑到了这一点,提供了一套灵活且功能强大的标签管理系统。其中,tagList 标签正是我们前端展示文档关联标签的核心工具。
核心功能解析:tagList 标签概览
tagList 标签的主要用途是获取并展示文档所关联的所有标签。无论是为了在文章底部显示相关话题,还是在侧边栏创建一个热门标签云,tagList 都能提供我们所需的数据。这个标签允许我们根据不同的需求,灵活地控制标签的来源和数量。
如何为文档关联标签
在使用 tagList 标签之前,我们需要了解标签是如何与文档关联起来的。在 AnQiCMS 的后台,当我们添加或编辑一篇文档时,会看到一个“Tag标签”的输入框。在这里,我们可以为当前文档添加多个标签。我们可以选择已存在的标签,也可以通过输入文字并按回车键来创建新的标签。AnQiCMS 的标签系统非常灵活,同一个标签可以被不同内容模型(如文章、产品等)的文档所共用,这意味着标签是跨分类、跨模型的。
tagList 标签的基础用法
tagList 标签的使用遵循 AnQiCMS 模板引擎的统一语法。它的基本结构是 {% tagList 变量名 with ... %} 和 {% endtagList %}。
例如,要在前端展示当前文档的所有标签,我们可以这样定义一个变量 tags 来承载这些标签数据,然后通过 for 循环遍历输出:
<div>
文档标签:
{% tagList tags %}
{% for item in tags %}
<a href="{{item.Link}}">{{item.Title}}</a>
{% endfor %}
{% endtagList %}
</div>
在这个例子中,tags 是一个数组对象,for 循环中的 item 变量则代表了每一个独立的标签对象。每个标签对象都包含了 Id(标签ID)、Title(标签名称)、Link(标签链接)、Description(标签描述)以及 FirstLetter(标签索引字母)等信息。我们可以根据需要,通过 item.属性名 的方式来访问和展示这些数据。
深入理解 tagList 的参数
tagList 标签提供了多个参数,让我们可以更精细地控制标签的获取:
itemId:指定文档 ID 默认情况下,tagList会自动获取当前页面文档所关联的标签。但如果我们想展示特定文档的标签,可以通过itemId="文档ID"来指定。例如,itemId="10"会获取 ID 为 10 的文档的标签。如果想展示所有标签,而不是与特定文档关联的标签,可以将itemId设置为0,即itemId="0"。这在制作网站的标签云或热门标签列表时非常有用。limit:控制显示数量 我们可以通过limit="数量"来限制显示的标签数量。例如,limit="10"会只显示最多 10 个标签。如果我们需要从某个位置开始获取一定数量的标签(例如,从第 2 个标签开始获取 5 个),可以采用limit="offset,数量"的模式,例如limit="2,5"。letter:按索引字母筛选 这个参数允许我们只显示特定首字母的标签,例如letter="A"会只显示以 A 开头的标签。categoryId:按分类 ID 筛选 如果我们希望只显示某个或某几个特定分类下的标签(这些标签可能同时关联到其他分类的文档,但在这里我们只关心特定分类上下文中的标签),可以使用categoryId="分类ID"。多个分类 ID 可以用英文逗号,分隔,例如categoryId="1,2,3"。siteId:多站点数据调用 对于那些使用了 AnQiCMS 多站点管理功能的用户,如果需要调用其他站点的数据,可以通过siteId="站点ID"来指定。通常情况下,这个参数可以省略,因为tagList会默认获取当前站点的数据。
实用代码示例
了解了参数,我们来看看一些更具体的应用场景。
1. 显示当前文档关联的所有标签
<div class="article-tags">
<strong>相关标签:</strong>
{% tagList currentDocTags %}
{% for tag in currentDocTags %}
<a href="{{ tag.Link }}" title="{{ tag.Title }}">{{ tag.Title }}</a>
{% empty %}
<span>暂无相关标签</span>
{% endfor %}
{% endtagList %}
</div>
2. 显示所有热门标签(例如,在侧边栏)
这里我们将 itemId 设置为 0,并限制显示数量。
<div class="sidebar-tags">
<h4>热门标签</h4>
<ul>
{% tagList hotTags with itemId="0" limit="15" %}
{% for tag in hotTags %}
<li><a href="{{ tag.Link }}">{{ tag.Title }}</a></li>
{% empty %}
<li>暂无热门标签</li>
{% endfor %}
{% endtagList %}
</ul>
</div>
3. 在专门的标签列表页进行分页显示
AnQiCMS 的 tagList 标签也支持分页功能,这通常用于 /tag/index.html 这样的标签索引页面。我们需要将 type 参数设置为 "page",并结合 pagination 标签使用。
”`twig