木材 + ACF - 如何让 get_row_index() 工作?

Timber + ACF - How to get get_row_index() working?

问题: 我需要从灵活内容字段中获取当前布局索引。 ACF 已经为此内置了功能 - https://www.advancedcustomfields.com/resources/get_row_index/

木材模板:

{% extends "base.twig" %}

{% block content %}

    {% for flex_content in post.meta('flex_components') %}
        {{ get_row_index() }} <!-- I'm stuck here -->
        {% include [flex_content.acf_fc_layout|sanitize ~ '.twig'] ignore missing %}
    {% endfor %}

{% endblock %}

我目前的解决方案:正在使用一个简单的计数器,但我想学习如何使用 get_row_index() 函数(如果可能的话) .

{% extends "base.twig" %}

{% block content %}

    {% set my_counter = 1 %}
    {% for flex_content in post.meta('flex_components') %}
        {% include [flex_content.acf_fc_layout|sanitize ~ '.twig'] ignore missing %}
        {% set my_counter = my_counter + 1 %}
    {% endfor %}

{% endblock %}

不幸的是,您不能在使用 Timber 时使用 get_row_index(),因为该功能依赖于 ACF 在使用 have_rows() 时设置的全局变量,我们在 Timber 中没有。这类似于 Timber 试图摆脱的 WordPress 循环。

在 Twig 中,您始终可以使用 loop variablefor 循环中。此变量为您提供所需的计数器。

{% extends "base.twig" %}

{% block content %}
    {{ dump(loop.index) }}

    {% for flex_content in post.meta('flex_components') %}
        {% include [flex_content.acf_fc_layout|sanitize ~ '.twig'] ignore missing %}
    {% endfor %}
{% endblock %}