在安QiCMS中管理和展示内容,标签(Tag)是一个非常实用的功能。它不仅能帮助您更好地组织文章内容,还能为用户提供更灵活的导航方式,并对搜索引擎优化(SEO)大有裨益。当读者浏览一篇文章时,如果能看到与其相关的标签列表,并能点击这些标签发现更多相似主题的内容,无疑会大大提升用户体验和网站的PV(页面浏览量)。
今天,我们就来深入了解如何在AnQiCMS中利用tagList标签,轻松地在文章页面显示与当前文章相关的标签列表及其链接。
标签的价值与AnQiCMS的标签管理
在AnQiCMS中,您可以在后台的“内容管理”模块下找到“文档标签”功能。发布或编辑文章时,系统提供了一个直观的界面让您为文章添加多个标签。这些标签可以是关键词、主题或任何您认为能概括文章内容的词语。
AnQiCMS的标签管理设计得很灵活,同一个标签可以关联不同内容模型下的文章。每个标签都可以有独立的名称、索引字母、自定义URL和SEO描述,这使得标签本身也成为网站内容体系中的重要组成部分,能够被搜索引擎更好地抓取和理解。
引入tagList标签:文章标签展示的核心
要在文章页面显示与当前文章相关联的标签列表,我们主要会用到AnQiCMS的内置标签tagList。这个标签专门用于获取和展示文档的标签信息。
tagList标签通常成对出现,格式如下:
{% tagList 变量名 with 参数 %}
{# 循环处理标签数据的代码 #}
{% endtagList %}
其中,变量名 是您为获取到的标签列表定义的一个临时变量名称,例如articleTags。在标签内部,您可以使用for循环来遍历这个变量,从而逐一展示每个标签的详细信息。
实战演示:在文章详情页显示标签列表
假设您希望在每篇文章的底部,显示该文章所有已关联的标签,并让这些标签可以点击,跳转到该标签的专题页面。在AnQiCMS的文章详情模板(通常是{模型table}/detail.html)中,您可以这样编写代码:
{# 在文章详情页(例如:archive/detail.html)的合适位置 #}
<div class="article-tags-section">
<strong>相关标签:</strong>
{% tagList currentArticleTags %} {# 默认会自动获取当前文档的ID来显示相关标签 #}
{% for item in currentArticleTags %}
<a href="{{ item.Link }}"
class="tag-link"
title="查看更多关于 {{ item.Title }} 的内容">{{ item.Title }}</a>{% if not forloop.Last %}, {% endif %}
{% empty %}
<span>暂无相关标签。</span>
{% endfor %}
{% endtagList %}
</div>
在这段代码中:
{% tagList currentArticleTags %}:我们定义了一个名为currentArticleTags的变量来存储获取到的标签列表。当不指定itemId参数时,tagList会智能地获取当前页面文章的ID,并显示其关联的所有标签。{% for item in currentArticleTags %}:遍历currentArticleTags数组,item变量在每次循环中代表一个具体的标签对象。{{ item.Link }}:这是标签的链接地址。点击后,用户将被引导到该标签的聚合页面,显示所有带有此标签的文章。{{ item.Title }}:这是标签的显示名称。{% if not forloop.Last %}, {% endif %}:这是一个小技巧,用于在每个标签名称后添加逗号,但最后一个标签除外,使显示更自然。{% empty %} ... {% endfor %}:如果当前文章没有关联任何标签,这部分内容就会显示,提示用户“暂无相关标签。”,避免页面出现空白。
灵活运用:探索tagList的更多参数
tagList标签还提供了一些参数,让您能够更精细地控制标签的显示方式。
itemId:指定或获取全站标签- 默认行为(不带
itemId):如上例所示,在文章详情页,它会自动获取当前文章的标签。 - 指定文章ID:如果您想显示特定ID文章的标签,而不是当前页面的,可以这样使用:
{# 显示ID为123的文章的所有标签 #} {% tagList specificArticleTags with itemId="123" %} {% for item in specificArticleTags %} <a href="{{ item.Link }}">{{ item.Title }}</a> {% endfor %} {% endtagList %} - 获取全站所有标签:如果您想在侧边栏、页脚或独立的标签页(例如
tag/index.html)显示全站所有标签,可以设置itemId="0"。{# 在侧边栏或页脚显示全站热门标签 #} <div class="site-tag-cloud"> <h3>热门标签</h3> {% tagList allSiteTags with itemId="0" limit="30" %} {# itemId="0" 表示获取所有标签,不与当前文章关联 #} {% for item in allSiteTags %} <a href="{{ item.Link }}">{{ item.Title }}</a> {% endfor %} {% endtagList %} </div>
- 默认行为(不带
limit:控制显示数量 这个参数可以限制显示的标签数量。例如,如果您只想显示最热门的10个标签,可以这样:{# 显示当前文章的前5个标签 #} {% tagList limitedTags with limit="5" %} {% for item in limitedTags %} <a href="{{ item.Link }}">{{ item.Title }}</a> {% endfor %} {% endtagList %}limit还支持offset模式,例如limit="2,10"表示从第2个