安企CMS提供了一套强大而灵活的标签(Tag)功能,帮助我们更好地组织内容,提升网站的SEO表现,并为用户提供更加便捷的内容发现途径。通过合理利用标签,我们可以轻松创建内容聚合页,让访问者能够根据兴趣快速找到相关主题的文章或产品。
一、理解标签功能的核心价值
在安企CMS中,标签不仅仅是内容的关键词,它们更像是连接不同内容的纽带。当我们将一个或多个标签赋予某篇文档时,实际上是在为其创建新的内容关联。例如,一篇介绍“Go语言开发”的文章,可以被打上“Go语言”、“后端开发”、“微服务”等标签。这样一来,对“后端开发”感兴趣的用户,不仅可以通过分类进入后端开发栏目,还可以通过点击“后端开发”标签,发现所有与此主题相关的文章,无论它们属于哪个分类。
这种内容聚合的能力,对网站的以下方面有着显著的提升:
- 增强内容组织性: 突破传统分类的层级限制,形成多维度内容关联。
- 优化用户体验: 用户能更高效地发现感兴趣的内容,提高网站停留时间。
- 助力搜索引擎优化(SEO): 每个标签页都可能成为一个独特的入口,带来更多长尾关键词流量。通过为标签页设置独立的TDK(Title、Description、Keywords),可以进一步提升其在搜索引擎中的表现。
二、后端如何设置和管理标签
在使用标签功能之前,我们需要在安企CMS的后台进行简单的配置和管理。
- 创建和管理标签:
- 进入后台管理界面,在“内容管理”模块下找到“文档标签”。
- 在这里,我们可以新增标签。每个标签都可以设置“标签名称”、“索引字母”(方便按字母顺序排列)、“自定义URL”(这对SEO非常重要,可以设置更具语义化的链接)、“SEO标题”、“标签关键词”和“标签简介”。这些SEO相关的设置将直接影响标签聚合页在搜索引擎中的可见度。
- 已经创建的标签也可以在此处进行编辑和删除。
- 为内容关联标签:
- 在发布或编辑文章、产品等文档时,页面中会有一个“Tag标签”的输入框。
- 我们可以直接输入新的标签名称(按回车键即可转换为标签),系统会自动将其保存并与当前文档关联;也可以选择已经存在的标签进行关联。一篇文档可以关联多个标签。
完成这些后端操作后,我们的内容就已经通过标签建立起了内部连接。接下来,就需要在前端模板中将这些标签页呈现出来。
三、前端模板中展示标签聚合页
安企CMS的模板系统设计得非常灵活,针对标签功能,它提供了专门的标签来实现前端的展示。
1. 展示所有标签的列表页面(例如 tag/index.html)
我们通常会创建一个页面,集中展示网站中所有的标签,方便用户浏览。这个页面通常对应模板文件 /template/你的模板目录/tag/index.html。
要在这个页面中列出所有标签,我们可以使用 tagList 标签:
{# tag/index.html - 示例代码,用于展示所有标签 #}
<div>
<h1>所有标签</h1>
{% tagList tags with type="page" limit="30" %} {# type="page" 启用分页,limit="30" 控制每页显示数量 #}
<ul class="tag-list-all">
{% for item in tags %}
<li>
<a href="{{item.Link}}" title="{{item.Description}}">
<h3>{{item.Title}}</h3>
{% if item.Description %}
<p>{{item.Description}}</p>
{% endif %}
</a>
</li>
{% empty %}
<li>目前还没有任何标签。</li>
{% endfor %}
</ul>
{# 标签列表的分页导航 #}
<div class="pagination-container">
{% pagination pages with show="5" %}
{% if pages.PrevPage %}<a href="{{pages.PrevPage.Link}}">上一页</a>{% endif %}
{% for page_item in pages.Pages %}
<a class="{% if page_item.IsCurrent %}active{% endif %}" href="{{page_item.Link}}">{{page_item.Name}}</a>
{% endfor %}
{% if pages.NextPage %}<a href="{{pages.NextPage.Link}}">下一页</a>{% endif %}
{% endpagination %}
</div>
</div>
在这个例子中:
{% tagList tags with type="page" limit="30" %}会获取网站中的所有标签,并按每页30个进行分页。我们将结果赋值给tags变量。{% for item in tags %}循环遍历每个标签,item.Link获取标签页的链接,item.Title获取标签名称,item.Description获取标签描述。{% pagination pages with show="5" %}则会为标签列表生成分页导航。
2. 展示特定标签下的内容聚合页(例如 tag/list.html)
这是标签功能的核心——展示某个特定标签下的所有相关文档。这个页面通常对应模板文件 /template/你的模板目录/tag/list.html。当用户点击某个标签链接时,就会跳转到这个页面。
在这个页面中,我们需要做两件事:
- 获取当前标签的详细信息(名称、描述、SEO信息)。
- 获取所有与当前标签关联的文档。
”`twig {# tag/list.html - 示例代码,用于展示特定标签下的内容 #}
{# 1. 获取当前标签的详细信息 #}
{% tagDetail currentTag %} {# 在 tag/list.html 页面中,tagDetail 会自动识别当前标签ID #}
<h1>标签:{{currentTag.Title}}</h1>
{% if currentTag.Description %}
<p class="tag-description">{{currentTag.Description}}</p>
{% endif %}
<hr>
{# 2. 获取与当前标签关联的文档列表 #}
<ul class="archive-list-by-tag">
{% tagDataList archives with type="page" limit="10" %} {# type="page" 启用分页,limit="10" 控制每页显示数量 #}
{% for item in archives %}
<li>
<a href="{{item.Link}}" title="{{item.Title}}">
<h2>{{item.Title}}</h2>
{% if item.Thumb %}
<img src="{{item.Thumb}}" alt="{{item.Title}}" class="archive-thumb">
{% endif %}
<p class="archive-description">{{item.Description}}</p>
<div class="archive-meta">
<span>发布时间:{{stampToDate(item.CreatedTime, "2006-01