在网站内容运营中,保持文本格式的一致性是提升用户体验和SEO效果的关键一步。有时,我们可能会遇到这样的需求:希望后台自定义字段中输入的英文文本,无论用户如何输入大小写,最终在前台显示时都能强制转换为小写。这不仅能让页面看起来更整洁专业,也有助于避免因大小写不一致导致的SEO问题。

幸运的是,AnQiCMS 提供了一个非常灵活的内容管理方案,借助其强大的模板引擎和内置的过滤器,我们可以轻松实现这一目标。

理解AnQiCMS的自定义字段

AnQiCMS定位于服务中小企业和内容运营团队,它允许我们根据业务需求高度定制内容结构。在后台的“内容管理”->“内容模型”中,我们可以为文章、产品或其他自定义模型添加专属字段。这些自定义字段极大地丰富了内容的表达形式,比如商品型号、品牌名称、产品编码等,都可能包含英文文本。

例如,如果您创建了一个名为“产品编码”的自定义字段,并将其“调用字段”设置为productCode。用户在后台输入时,可能会随意输入“ABC-123”、“abc-123”或“Abc-123”,但为了统一展示,我们希望它们都能显示为“abc-123”。

模板引擎与过滤器的妙用

AnQiCMS采用了类似Django模板引擎的语法,这种强大且易用的特性让我们能够在内容展示层面进行灵活的数据处理。其中,“过滤器”(Filters)就是我们实现文本格式转换的利器。安企CMS内置了多种实用的过滤器,其中就包括一个名为lower的过滤器,它的作用是将英文字符串中的所有大写字母转换为小写。

要将自定义字段的英文文本强制转换为小写,我们不需要修改数据库中的原始数据,也不需要编写复杂的后端代码。只需在模板文件中,找到对应自定义字段的输出位置,然后巧妙地应用lower过滤器即可。

实操步骤:将自定义字段文本转换为小写

让我们一步步来看看如何实现:

  1. 确定自定义字段的调用位置 首先,我们需要确定自定义字段是在哪个模板文件中、通过哪个标签进行调用的。通常,自定义字段会通过archiveDetailarchiveParams标签在文章或产品详情页中进行展示。

    • 如果您是直接调用某个自定义字段(例如productCode),它可能看起来像这样: {% archiveDetail productCode with name="productCode" %}{{ productCode }}

    • 如果您的自定义字段是作为“其他参数”的一部分,通过archiveParams标签循环遍历显示的,它可能看起来像这样: {% archiveParams params %}{% for item in params %}<span>{{ item.Name }}:</span><span>{{ item.Value }}</span>{% endfor %}{% endarchiveParams %}

  2. 应用lower过滤器 确定了调用位置后,下一步就是在输出自定义字段值的地方,添加|lower过滤器。

    • 对于直接调用的情况,在变量后面加上|lower即可: 将 {{ productCode }} 修改为 {{ productCode|lower }}。 完整的代码片段可能变为:

      {% archiveDetail productCode with name="productCode" %}
      产品编码:{{ productCode|lower }}
      
    • 对于通过archiveParams循环遍历的情况,同样在item.Value后面添加|lower: 将 <span>{{ item.Value }}</span> 修改为 <span>{{ item.Value|lower }}</span>。 完整的代码片段可能变为:

      {% archiveParams params %}
      {% for item in params %}
      <div>
          <span>{{ item.Name }}:</span>
          <span>{{ item.Value|lower }}</span>
      </div>
      {% endfor %}
      {% endarchiveParams %}
      
  3. 保存并更新缓存 修改完成后,记得保存模板文件。然后,非常重要的一步是:清除AnQiCMS的系统缓存。在后台左侧菜单最底部,您会找到“更新缓存”选项,点击它来清除所有缓存。之后,刷新您的网站前台页面,您应该就能看到自定义字段中的英文文本已经全部强制转换为小写了。

这种方法只改变了前端的显示效果,后台数据库中存储的原始数据(包括大小写)不会受到影响,这为内容编辑保留了原始性,同时又确保了前端展示的规范性。

一些重要的考量

  • 缓存机制: AnQiCMS为了提高性能,使用了缓存。所以,每次修改模板文件后,务必在后台点击“更新缓存”来清除旧的缓存数据,否则您可能无法立即看到修改后的效果。
  • 全局与局部: 这种转换是针对您在模板中添加了|lower过滤