在日常的网站运营中,我们常常会遇到这样的需求:标准化的内容字段已无法满足多样化的信息展示。例如,一个产品详情页可能需要展示“型号”、“材质”、“保修期”等独有属性,而一篇普通文章则可能需要额外注明“文章来源”、“预计阅读时长”等。安企CMS深知这种灵活性对内容运营的重要性,因此提供了强大的自定义参数功能,并辅以 archiveParams 标签,让您能够轻松获取并展示这些文档专属的定制化信息。
本文将深入探讨如何利用 archiveParams 标签,将文档的自定义参数内容呈现在网站前端,让您的内容展示更加丰富和个性化。
配置自定义参数:为您的内容模型注入活力
在探讨如何展示这些参数之前,我们首先需要了解它们是如何被创建和添加的。安企CMS的自定义参数是与“内容模型”紧密关联的。每个内容模型都可以拥有自己独特的一组自定义字段,这些字段将作为该模型下所有文档的额外信息。
要开始设置,您需要进入安企CMS的后台管理界面,在左侧导航栏中找到“内容管理”模块,然后点击进入“内容模型”。系统默认提供了“文章模型”和“产品模型”,您也可以根据业务需求创建新的内容模型。
选中一个您希望添加自定义参数的模型,点击编辑按钮。在模型编辑页面,您会看到一个“内容模型自定义字段”区域。在这里,您可以添加新的字段:
- 参数名:这是您在后台管理界面看到和理解的字段名称,比如“产品型号”、“文章作者”。
- 调用字段:这是在模板中用于调用该参数的唯一标识符,通常建议使用英文字母。例如,如果参数名是“产品型号”,调用字段可以是
modelNumber。在模板中,您将通过这个字段名来获取其对应的值。 - 字段类型:安企CMS支持多种字段类型,如单行文本、数字、多行文本、单项选择、多项选择、下拉选择等,您可以根据实际信息类型进行选择。
- 是否必填:决定用户在发布文档时是否必须填写此字段。
- 默认值:为字段设置一个预设值,如果用户未填写,则会使用该默认值。
完成自定义字段的添加和保存后,当您再去发布或编辑该内容模型下的文档时,在文档编辑页面的“其他参数”部分,您就会看到这些新增的自定义字段,并可以为每篇文档填写其专属内容了。
archiveParams 标签:在模板中精准展示自定义数据
现在,核心任务来了:如何将这些在后台精心配置并填写的自定义参数,呈现在您的网站页面上呢?答案就是使用安企CMS提供的 archiveParams 标签。
archiveParams 标签主要用于获取指定文档的所有自定义参数,您可以选择以固定顺序的数组形式遍历展示所有参数,也可以直接以键值对(Map)的形式获取特定参数的值。
1. 遍历所有自定义参数(推荐:固定排序的数组)
在文档详情页(或其他任何能获取到文档ID的页面),如果您想显示当前文档所有的自定义参数,可以使用 archiveParams 标签并让其返回一个数组。默认情况下,archiveParams 标签的 sorted 参数就是 true,意味着它会返回一个包含所有参数的有序列表。
每个列表项都是一个对象,包含 Name(参数名,即您在后台设置的中文名称)和 Value(参数值)。
{# 假设我们正在一个文档详情页,它会自动获取当前文档的自定义参数 #}
<div class="custom-parameters">
<h3>详细参数</h3>
{% archiveParams params %} {# params 是您为获取到的参数定义的变量名 #}
{% for item in params %}
<p><strong>{{ item.Name }}:</strong>{{ item.Value }}</p>
{% endfor %}
{% endarchiveParams %}
</div>
通过这段代码,您的网站将遍历并展示当前文档所有的自定义参数及其对应的值,例如“产品型号:XYZ-2023”、“材质:不锈钢”等,大大增强了内容的信息量。
2. 获取特定自定义参数(无序的键值对或直接通过 archiveDetail)
有时候,您可能不需要遍历所有参数,而只是想获取并显示某个特定的自定义参数,例如只显示“产品型号”或“文章作者”。这时,您可以让 archiveParams 返回一个无序的键值对(Map),或者更简洁地使用 archiveDetail 标签。
方式一:使用 archiveParams 返回无序的键值对
通过设置 sorted=false,archiveParams 标签会返回一个键值对对象,其中的键就是您在后台设置的“调用字段”,值则是包含 Name 和 Value 的对象。
{# 假设要获取调用字段为 'modelNumber' 和 'author' 的自定义参数 #}
<div class="specific-parameters">
{% archiveParams customFields with sorted=false %}
<p>产品型号:{{ customFields.modelNumber.Value }}</p>
<p>文章作者:{{ customFields.author.Value }}</p>
{% endarchiveParams %}
</div>
这种方式适用于您需要获取多个但非全部自定义参数的情况,通过 customFields.调用字段.Value 的形式可以直接访问。
方式二:直接通过 archiveDetail 标签获取
对于只需要获取单个特定自定义参数的场景,安企CMS提供了更直接、更简洁的方法:利用 archiveDetail 标签。只要您知道该自定义参数的“调用字段”,就可以直接使用 archiveDetail 来获取其值,就像获取文档标题、内容等系统自带字段一样。
<div class="quick-access-parameters">
<p>产品型号:{% archiveDetail with name="modelNumber" %}</p>
<p>文章作者:{% archiveDetail with name="author" %}</p>
{# 如果自定义字段是组图类型,例如调用字段为 'productImages' #}
{% archiveDetail productImages with name="productImages" %}
{% if productImages %}
<div class="product-gallery">
{% for imgUrl in productImages %}
<img src="{{ imgUrl }}" alt="产品图片">
{% endfor %}
</div>
{% endif %}
{% endarchiveDetail %}
</div>
这种方式非常适合您页面布局固定、只需要展示少数几个已知自定义参数的场景,代码更加精炼易读。
3. 获取指定文档的自定义参数
上述示例默认都获取当前文档的自定义参数。如果您需要在当前文档页获取*其他*文档的自定义参数,可以通过 id 参数来指定文档ID。
{# 获取ID为123的文档的所有自定义参数 #}
{% archiveParams otherDocParams with id="123" %}
{% for item in otherDocParams %}
<p><strong>{{ item.Name }}:</strong>{{ item.Value }}</p>
{% endfor %}
{% endarchiveParams %}
{# 获取ID为456的文档的某个特定自定义参数 'material' #}
<p>其他文档的材质:{% archiveDetail with name="material" id="456" %}</p>
此外,对于使用多站点管理的用户,如果需要调用其他站点的数据,还可以在标签中添加 siteId 参数来指定站点ID。
灵活运用自定义参数,丰富您的网站内容
通过 archiveParams 和 archiveDetail 标签,您可以将安企CMS的自定义参数功能发挥到极致。无论是为产品列表添加详细规格,为文章补充额外信息,还是为活动页面展示报名细节,这些自定义参数都能帮助您构建更具表现力、更贴合业务需求的内容。它们不仅让您的内容更具吸引力,也为SEO优化提供了更多结构化数据的可能性,让搜索引擎更好地理解和展示您的页面。
掌握了 archiveParams 标签,您就拥有了在安企CMS中实现高度内容定制化的关键工具。勇敢尝试,让您的网站内容更上一层楼吧!
常见问题解答 (FAQ)
Q1: 为什么我添加了自定义字段,但模板中显示不出来?
A1: 最常见的原因是模板中使用的“调用字段”与后台设置的不一致,或者您使用了 archiveParams 标签但未正确遍历其返回的结构。请检查以下几点:
- 调用字段拼写:确认模板中的
customFields.fieldName.Value或{% archiveDetail with name="fieldName" %}中的fieldName与您在后台内容模型中设置的“调用字段”完全一致,包括大小写。 sorted参数影响:如果您使用了archiveParams标签,sorted=true(默认)返回的是一个数组,需要用{% for item in params %}{{ item.Name }}: {{ item.Value }}{% endfor %}的方式遍历。而sorted=false返回的是键值对,可以直接用{{ params.fieldName.Value }}访问。请确保您使用了与返回类型匹配的访问方式。