Сравните переменную имени со строковым значением в шаблоне ветки Drupal 8

Я работаю со страницей шаблона термина таксономии в Drupal 8, и мне нужно иметь возможность показывать конкретный контент, основываясь исключительно на термине таксономии, который заполняет контент страницы. Я использую шаблон taxonomy-term.twig.html в качестве отправной точки, но мне не повезло, сравнивая строковое значение с переменной {{ name }}. Вот код, который у меня есть:

<section{{ attributes.addClass(classes)}}>
    {% if 'general' in name %}
       <img class="promo-image" src="http://placehold.it/150x150" alt="promo">
       <h3 class="promo-title">Promo title text</h3>
       <p class="promo-copy">lorem ipsum dolor set amet</p>
       <div class="links">
          <a href="/resources" class="btn outline-black-transparent">Learn more</a>
       </div>
    {% endif %}
</section>

Если я выведу переменную name как обычно {{ name }}, она напечатает имя тега на странице, но я не могу понять, как сравнить значение с чем-либо. Я также пробовал прямой маршрут if equals, но похоже, что переменная name является массивом.

1 ответ

Поскольку переменная name является массивом, и мне нужно было только первое добавленное мной значение:

{%
set tag = name['#items'].0.value
%}

Затем изменил оператор if на:

{% if tag == 'text' %}
<section{{ attributes.addClass(classes)}}>
   <img class="promo-image" src="http://placehold.it/150x150" alt="promo">
   <h3 class="promo-title">Promo title text</h3>
   <p class="promo-copy">lorem ipsum dolor set amet</p>
   <div class="links">
      <a href="/resources" class="btn outline-black-transparent">Learn more</a>
   </div>
 </section>
{% endif %}

Теперь шаблон работает так, как я хотел.

Другие вопросы по тегам