在内容管理中,标签(Tag)是连接内容、提升用户体验和优化搜索引擎表现的重要桥梁。安企CMS深知其重要性,提供了强大的标签管理功能,并通过tagList和tagDataList这两个核心标签,让内容运营者能够灵活地展示和管理文档标签及其关联内容。
标签:内容分类与发现的利器
在安企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.html或tag_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,您可以为每个标签创建动态且内容丰富的着陆页,让用户能够便捷地浏览感兴趣主题下的所有文档,极大地提升了内容的可发现性。
整合与应用:构建高效的标签生态
tagList和tagDataList这两个标签通常协同工作,共同构建了一个高效的标签内容生态。您可以:
- 在首页或侧边栏使用
tagList展示热门标签或推荐标签,吸引用户点击。 - 当用户点击某个标签后,会跳转到该标签的详情页(
tag/list.html),在该页面中,您可以利用tagDetail标签获取当前标签的详细信息(如名称、描述、SEO数据)作为页面标题和简介,然后使用tagDataList动态加载并展示与该标签相关的所有文档。
这种组合不仅增强了网站的内部链接结构,对搜索引擎优化大有裨益,同时也为用户提供了清晰的导航路径,让他们可以更轻松地发现和消费相关内容