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

Custom Field Suite重复字段无法与Timber插件配合使用求助

解决Timber中Custom Field Suite(CFS)重复字段无法渲染的问题

先从基础排查入手,再针对性调整写法:

1. 先确认核心数据是否能正常获取

在Twig模板里先添加调试代码,看看字段数据是否存在:

{{ dump(post.meta('knowFields')) }}

如果输出null或空数组,说明根本没拿到数据,先解决这个问题:

  • 核对CFS后台重复字段的机器名是否是knowFields(注意大小写,CFS字段名区分大小写)
  • 确认当前post对象是目标文章:比如在分类页里可能误拿了全局post,要确保post是包含该自定义字段的文章对象
  • 检查文章编辑页里,该重复字段是否已经填写并保存了内容

2. 改用CFS原生函数结合Timber的写法

Timber的post.meta()对部分CFS字段结构支持可能有偏差,试试在PHP模板文件(比如single.php或自定义模板)里用CFS原生函数获取数据,再传给Twig:

$context = Timber::context();
$post = Timber::get_post();
// 用CFS原生方法获取重复字段数据
$context['know_fields'] = CFS()->get('knowFields', $post->ID);
$context['post'] = $post;
Timber::render('你的模板文件名.twig', $context);

然后在Twig模板里渲染:

{% if know_fields is not empty %}
    {% for field in know_fields %}
        <article class="content-box">
            <figure class="content-box__ico">
                <img src="{{ field.fieldIco }}" alt="" class="content-box__ico--gfx">
            </figure>
            <p class="content-box--desc">{{ field.fieldDesc }}</p>
        </article>
    {% endfor %}
{% else %}
    <p>暂无相关内容</p>
{% endif %}

3. 核对子字段的机器名

确保fieldIco和fieldDesc完全匹配CFS后台设置的子字段机器名,大小写、驼峰/下划线都不能错——比如CFS里子字段机器名是field_ico,你写fieldIco就会取不到值。

4. 清除缓存

清掉WordPress缓存、Timber的编译缓存,避免旧数据干扰渲染结果。

内容的提问来源于stack exchange,提问作者Mateusz Pieszczyk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:14:56