Descripción
Este código te permitirá extraer e imprimir en plantillas los valores de un campo enlace por separado "Texto del enlace" + "Enlace", directamente en la plantilla del campo para conseguir, por ejemplo una lista con iconos en un campo múltiple de enlaces.
Instrucciones
Para extraer los valores de un campo enlace en un twig:
- Añade el campo enlace a tu contenido
- Activa el modo debug o depurador de Drupal para conocer el nombre de tus plantillas.
- Copia la plantilla "field.html.twig" y renómbrala según la sugerencia del modo depurador, Ej.: field--mis-enlaces.html.twig
- 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 %}