You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bolt CMS:如何获取内容类型选项及模板中的Contenttype Slug?

嘿,针对你在Bolt CMS里遇到的这两个需求——自动获取内容类型的slug、获取内容类型的配置选项,我给你整理了具体的实现方法:

获取内容类型的Slug

你已经通过{% setcontent products = 'products_de' %}拿到了内容类型的记录,但要获取它配置里的slug,可以直接从Bolt的全局配置中读取内容类型的定义:

1. 直接指定内容类型获取Slug

如果明确知道要获取的内容类型机器名(比如products_de),可以这样写:

{# 先拿到products_de的整个配置 #}
{% set ct_config = app.config.get('contenttypes').products_de %}
{# 输出配置里的slug和singular_slug #}
内容类型Slug:{{ ct_config.slug }} {# 会输出produkte #}
单数Slug:{{ ct_config.singular_slug }} {# 会输出produkt #}

2. 根据当前语言自动匹配内容类型Slug

因为你后续要加英语版本的products_en,可以结合当前站点的语言动态获取对应内容类型的slug,不用硬编码:

{# 获取当前请求的语言标识,比如de或en #}
{% set current_locale = app.request.locale %}
{# 拼接对应的内容类型机器名,比如products_de或products_en #}
{% set ct_handle = 'products_' ~ current_locale %}
{# 读取对应内容类型的配置 #}
{% set ct_config = app.config.get('contenttypes')[ct_handle] %}

{# 确保配置存在再输出 #}
{% if ct_config %}
  当前语言下的产品列表Slug:{{ ct_config.slug }}
{% endif %}
获取内容类型的所有配置选项

Bolt的app.config.get('contenttypes')会返回所有内容类型的完整配置,你可以从中拿到任何你需要的选项,比如name、singular_name、tablename甚至fields的定义:

示例:读取单个内容类型的所有配置

{% set ct_config = app.config.get('contenttypes').products_de %}
<div>
  <h4>{{ ct_config.name }}</h4>
  <p>单数名称:{{ ct_config.singular_name }}</p>
  <p>数据库表名:{{ ct_config.tablename }}</p>
  <p>字段配置:{{ ct_config.fields|dump }}</p> {# 用dump可以调试查看所有字段的详细配置 #}
</div>

示例:遍历所有内容类型的配置

如果需要查看所有内容类型的信息,可以循环遍历:

{% for handle, ct in app.config.get('contenttypes') %}
  <div>
    <h3>{{ ct.name }} (机器名:{{ handle }})</h3>
    <ul>
      <li>Slug:{{ ct.slug }}</li>
      <li>单数Slug:{{ ct.singular_slug }}</li>
      <li>表名:{{ ct.tablename }}</li>
    </ul>
  </div>
{% endfor %}

这样不管是单个内容类型的配置,还是多语言场景下的动态适配,都能轻松实现啦!

内容的提问来源于stack exchange,提问作者T.O.M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:45:07