Cómo extraer los valores de un campo enlace múltiple en field.html.twig

Instrucciones

Para extraer los valores de un campo enlace en un twig:

  1. Añade el campo enlace a tu contenido
     
  2. Activa el modo debug o depurador de Drupal para conocer el nombre de tus plantillas.
     
  3. Copia la plantilla "field.html.twig" y renómbrala según la sugerencia del modo depurador, Ej.: field--mis-enlaces.html.twig
     
  4. Sustituye el código que está debajo en tu plantilla y modifica las partes que hagan falta.
Código
{%
  set classes = [
    'field',
    'field--name-' ~ field_name|clean_class,
    'field--type-' ~ field_type|clean_class,
    'field--label-' ~ label_display,
  ]
%}
{%
  set title_classes = [
    'field__label',
    label_display == 'visually_hidden' ? 'visually-hidden',
  ]
%}

{% if label_hidden %}
  {% if multiple %}
    <div{{ attributes.addClass(classes, 'field__items', 'd-flex') }}>
      {% for item in items %}
        <div{{ item.attributes.addClass('field__item') }}>
          <a href="{{ item.content['#url']}}" class="btn btn-primary">
            {{ item.content['#title'] }}
          </a>
        </div>
      {% endfor %}
    </div>
  {% else %}
    {% for item in items %}
      <div{{ attributes.addClass(classes, 'field__item') }}>{{ item.content }}</div>
    {% endfor %}
  {% endif %}
{% else %}
  <div{{ attributes.addClass(classes) }}>
    <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
    {% if multiple %}
      <div class='field__items'>
    {% endif %}
    {% for item in items %}
      <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
    {% endfor %}
    {% if multiple %}
      </div>
    {% endif %}
  </div>
{% endif %}

Snippet relacionados