作为一名资深的网站运营专家,我深知在管理网站内容时,能够精确、灵活地调用数据是提升运营效率和网站性能的关键。安企CMS(AnQiCMS)凭借其强大的模板标签系统,为我们提供了诸多便利,尤其是在调用分类详细信息方面,无论是通过分类ID还是分类别名(token),都能实现精准操作。
今天,我们就来深入探讨如何在安企CMS中,通过这两种方式,获取并展示指定分类的详细信息。
了解安企CMS中的分类及其标识
在安企CMS中,内容分类是网站内容组织的核心骨架。无论是文章、产品还是其他自定义内容模型,都需要归属于特定的分类。每个分类都拥有一些独特的标识符,以便系统和模板能够准确识别和调用:
- 分类ID (ID):这是一个系统内部自动生成的唯一数字标识符。它是分类最直接、最稳定的身份证明,通常在后台管理界面或数据库中可见。
- 分类别名 (Token):为了更好地支持搜索引擎优化(SEO)和提升URL的可读性,安企CMS允许我们为分类设置一个唯一的英文别名。这个别名会出现在URL中(如果伪静态规则配置得当),例如
/category/news中的news就是别名。它更具语义化,对用户和搜索引擎都更加友好。
在内容运营的实践中,我们常常需要根据特定的分类ID或别名,来展示该分类的标题、描述、链接,甚至它所包含的文档数量或自定义字段。这时,安企CMS提供的categoryDetail模板标签便成为了我们的得力助手。
核心利器:categoryDetail 模板标签
categoryDetail 标签是安企CMS中用于获取单个分类详细信息的专用标签。它允许我们通过分类的ID或别名,精确地指定要获取哪个分类的哪一项具体信息。
它的基本使用方法是这样的:
{% categoryDetail 变量名称 with name="字段名称" id="分类ID" token="分类别名" %}
让我们拆解一下这个标签的各个部分:
变量名称:这是一个可选参数。如果你希望将获取到的分类信息赋值给一个变量,以便后续在模板中多次使用或进行逻辑判断,就可以在这里定义一个变量名。如果不定义,标签会直接输出结果。name="字段名称":这是最关键的部分,它指定了你想要获取分类的哪个具体字段。例如,name="Title"会获取分类的标题,name="Description"会获取分类的描述。id="分类ID":通过分类的数字ID来指定目标分类。例如,id="5"表示获取ID为5的分类信息。token="分类别名":通过分类的别名(英文token)来指定目标分类。例如,token="products"表示获取别名为products的分类信息。siteId="站点ID":如果你开启了多站点功能,并且希望调用其他站点的数据,可以通过这个参数指定站点ID。通常情况下,这个参数不需要填写,系统会默认调用当前站点的数据。
name 参数可调用的分类字段一览:
安企CMS的categoryDetail标签支持调用分类的丰富信息,常用的包括:
Id: 分类的唯一数字ID。Title: 分类的名称或标题。Link: 分类的URL链接。Description: 分类的简短描述,常用于SEO。Content: 分类的详细内容,可以包含HTML。ParentId: 上级分类的ID,用于构建层级关系。Logo: 分类的封面大图地址。Thumb: 分类的缩略图地址。Images: 分类的Banner图组(通常是一个图片数组)。ArchiveCount: 该分类下的文档(内容)数量。后台自定义字段名称: 如果你在后台为分类模型添加了自定义字段,可以直接通过name="你的自定义字段名"来调用其值。
实战演练:精准调用各类信息
下面,我们通过一些具体的代码示例,来看看如何灵活运用categoryDetail标签。
场景一:在非分类页面调用特定分类的标题和链接
假设你正在首页或某个文章详情页,需要展示“产品分类”这个特定分类的标题,并为其生成一个链接。我们知道“产品分类”的ID是 2,别名是 products。
通过ID调用:
{% set productCategoryTitle = "" %}
{% categoryDetail productCategoryTitle with name="Title" id="2" %}{# 将ID为2的分类标题赋值给productCategoryTitle变量 #}
{% set productCategoryLink = "" %}
{% categoryDetail productCategoryLink with name="Link" id="2" %}{# 将ID为2的分类链接赋值给productCategoryLink变量 #}
<p>前往 <a href="{{ productCategoryLink }}">{{ productCategoryTitle }}</a> 页面。</p>
或者,如果你不需要赋值给变量,直接输出:
<p>前往 <a href="{% categoryDetail with name='Link' id='2' %}">{% categoryDetail with name='Title' id='2' %}</a> 页面。</p>
通过别名(token)调用:
{% set productCategoryTitleByToken = "" %}
{% categoryDetail productCategoryTitleByToken with name="Title" token="products" %}
{% set productCategoryLinkByToken = "" %}
{% categoryDetail productCategoryLinkByToken with name="Link" token="products" %}
<p>探索我们的 <a href="{{ productCategoryLinkByToken }}">{{ productCategoryTitleByToken }}</a>。</p>
场景二:获取分类的描述信息,用于SEO元标签
假设我们需要在自定义的_header.html模板中,根据当前页面分类的别名(假设为news)来获取其描述信息,填充到<meta name="description">中。
”`twig