在安企CMS (AnQiCMS) 中,自定义参数字段为网站内容提供了极大的灵活性和可扩展性。作为一名熟悉安企CMS的网站运营人员,我深知如何有效地利用这些字段,并将其展示在网站前端,以满足多样化的内容展示需求。本文将详细阐述如何通过安企CMS的模板标签,获取并显示文章的自定义参数字段值。
理解安企CMS的自定义参数字段
安企CMS允许用户根据业务需求自定义内容模型。这意味着除了文章标题、内容、摘要等标准字段外,您可以为特定内容类型(例如,产品、服务、案例等)添加独有的自定义信息。这些自定义字段可以在后台的内容模型设置中定义,包括单行文本、数字、多行文本、单选、多选和下拉选择等多种类型。一旦在内容模型中定义并添加到文章或产品中,这些自定义参数就成为了内容数据的一部分,可以在前端模板中进行调用和显示。
定义自定义参数字段
在安企CMS后台,定义自定义字段的流程始于“内容模型”管理。您可以编辑现有模型(如文章模型、产品模型)或创建新的内容模型。在模型的编辑界面,有一个“内容模型自定义字段”区域。在这里,您可以添加新的字段,并为每个字段指定“参数名”(在后台显示给编辑人员看的中文名称,如“文章作者”),“调用字段”(在模板中实际使用的英文字段名,如author),以及字段类型、是否必填和默认值。这个“调用字段”是我们在模板中获取该自定义参数值的关键标识。
使用 archiveParams 标签获取自定义参数
在安企CMS的模板中,archiveParams 标签是专门用于获取文章自定义参数的主要工具。这个标签允许您获取当前文章或指定文章的所有自定义参数。
archiveParams 标签的基本语法是 {% archiveParams 变量名称 with id="文档ID" sorted=true %}。
其中,变量名称是您为获取到的参数集合定义的名称,例如params。id参数用于指定要获取哪个文档的自定义参数;如果省略id,它将默认获取当前页面正在显示的文档的参数。sorted参数则非常关键,它决定了返回的数据结构。
当 sorted 设置为 true 时(这也是默认值),archiveParams 会返回一个有序的数组对象。数组中的每个元素代表一个自定义字段,包含Name(参数名,即后台设置的中文名称)和Value(参数值)。这种方式适用于您想要遍历并显示所有自定义参数的场景。
以下是一个遍历并显示所有自定义参数的示例代码:
{# 假设这是在文档详情页,或者通过id="指定文档ID"获取 #}
<div>
{% archiveParams params with sorted=true %}
{% for item in params %}
<div>
<span>{{item.Name}}:</span>
<span>{{item.Value}}</span>
</div>
{% endfor %}
{% endarchiveParams %}
</div>
此代码段会遍历params数组,并为每个自定义参数显示其参数名和对应的值。
直接获取特定自定义参数
除了遍历所有自定义参数外,安企CMS还提供了两种更直接的方式来获取特定自定义参数的值。
第一种方式是使用archiveParams标签并将sorted参数设置为false。在这种模式下,archiveParams会返回一个无序的map对象,您可以通过自定义字段的“调用字段”(FieldName)直接访问其Name和Value。
例如,如果您定义了一个名为author的自定义字段(调用字段),您可以这样获取它的值:
{# 获取指定文档ID的参数,并以map形式返回 #}
<div>
{% archiveParams params with id="1" sorted=false %}
{# 假设存在名为 "author" 和 "version" 的自定义字段 #}
<div>作者:{{params.author.Value}}</div>
<div>版本:{{params.version.Value}}</div>
{% endarchiveParams %}
</div>
这种方式适用于您明确知道要获取哪些自定义字段,并且希望直接访问其值的场景。
第二种更为简洁的方式是直接通过archiveDetail标签来获取特定自定义字段的值。如果您的自定义字段在后台定义时有明确的“调用字段”,您可以在archiveDetail标签中使用该调用字段作为name参数的值,来直接获取其内容。
例如,如果您有一个调用字段为author的自定义参数,可以直接这样显示:
{# 直接通过archiveDetail标签获取名为"author"的自定义字段值 #}
<div>文章作者:{% archiveDetail with name="author" %}</div>
这种方法非常适合在文章详情页中,直接插入少量特定自定义参数的显示,代码更加简洁明了。
实际应用场景与**实践
在实际网站运营中,自定义参数字段可以极大地丰富您的内容展示。例如,对于产品页面,您可以自定义“规格”、“型号”、“产地”、“保修期”等字段。对于服务页面,可以添加“服务流程”、“服务周期”等。
在模板中显示这些参数时,建议您:
- 后台命名规范:在后台定义自定义字段时,确保“调用字段”使用有意义的英文名称,方便前端模板开发人员理解和使用。
- 前端样式适配:无论采用哪种方式获取参数值,都请注意结合CSS样式对其进行美化,使其与网站整体设计风格保持一致,提升用户体验。
- 条件判断:在某些情况下,自定义参数可能不是所有文章都填写。在模板中显示时,可以适当使用
{% if %}标签进行判断,避免显示空值。
通过上述方法,您可以灵活高效地在安企CMS网站上展示文章的自定义参数字段,从而打造内容丰富、功能强大的网站。
常见问题解答 (FAQ)
Q1: 我定义了自定义参数字段,但在文章详情页没有任何显示,这是为什么? A1: 请检查以下几个方面:
- 是否在后台内容模型中正确定义了字段? 确保字段的“调用字段”是英文且没有拼写错误。
- 是否在编辑文章时填写了该自定义字段的值? 只有填写了值的字段才会在前端显示。
- 模板中是否使用了正确的模板标签和字段名称? 例如,如果您使用
archiveParams,确保item.Name和item.Value的调用正确;如果使用archiveDetail直接获取,确保name="您的调用字段"正确无误。 - 是否清除了缓存? 在后台“更新缓存”功能中,尝试清除系统缓存。
Q2: archiveParams 标签中的 sorted=true 和 sorted=false 有什么区别,我应该如何选择?
A2: 当sorted=true时,archiveParams返回一个有序的数组,适用于您想要遍历所有自定义参数并逐一显示,或者不确定有哪些自定义参数时。例如,显示一个产品的全部规格列表。当sorted=false时,它返回一个无序的map,您可以通过字段的“调用字段”(英文名)直接访问特定参数的值。这种方式适用于您已经明确知道要显示哪些特定自定义参数,并希望直接获取其值而不需要遍历的场景,代码会更简洁。
Q3: 自定义字段的值可以是图片或复杂的HTML内容吗?如果可以,如何在模板中正确显示?
A3: 安企CMS的自定义字段类型包括单行文本和多行文本,多行文本编辑器支持富文本编辑,因此可以包含HTML内容甚至图片。当您通过模板标签获取到这些包含HTML或图片地址的自定义字段值时,您可能需要使用|safe过滤器来确保内容以原始HTML形式渲染,而不是被转义为纯文本。例如:<div>产品特性:{{item.Value|safe}}</div>。对于图片URL,您可以直接将其作为<img>标签的src属性值。