Если вы хотите использовать функцию PHP в Twig, вам нужно использовать function()
или fn()
, как описано в Руководстве по функциям .
Для вас это будет означатьчто в Twig вместо {{ get_the_term( event.id, 'country' ) }}
вы могли бы использовать
{{ fn( 'get_the_terms', event.id, 'country' ) }}
. Вы были на правильном пути, чтобы передать идентификатор через event.id
.Однако эта функция возвращает массив, который вы не можете отобразить так.Вам нужно преобразовать его в строку или зациклить на нем.Вот как вы можете отобразить только первую страну в этом массиве, используя фильтр first Twig:
{{ fn( 'get_the_terms', event.id, 'country' )|first }}
Если у вас будет несколько стран, вы можете превратить их в список через запятуюс join :
{{ fn( 'get_the_terms', event.id, 'country' )|join(', ') }}
Есть еще одна вещь, которую мы можем оптимизировать.Вместо использования get_the_terms()
мы можем использовать метод terms()
, который доступен для Timber\Post
объектов:
{% for event in events %}
<li>{{ event.name }} - {{ event.terms('country')|first }}</li>
{% endfor %}