web-dev-qa-db-fra.com

Suppression du conteneur wrapper div du champ de paragraphe et obtenir uniquement le texte brut dans twig

J'ai un modèle de paragraphe dans mon thème personnalisé en tant que paragraph--home-page-carousel.html et quand j'écris comme ça

<span class="car-spec">{{ content.field_home_slide_snippet[0]|raw }}</span>

Je reçois en code source HTML ceci

 <div>
    <span class="car-spec">
    FIELD CONTENT
    </span>
</div>

que dois-je faire pour retirer le wrapper div?

2
Mohamed Osama Gbril

Vous ne devriez pas faire {{ content.field_home_slide_snippet[0]|raw }}. Tu devrais faire {{ content.field_home_slide_snippet }} et modifiez le modèle twig pour field--field-home-slide-snippet.html.twig pour ne pas avoir de wrappers HTML. Copie field.html.twig à votre thème et modifiez-le si nécessaire.

5
Kevin

Vous pouvez utiliser le filtre de balises de bande : {{ some_html|striptags('<span>') }}
En supposant que le html est enveloppé dynamiquement par le <div> tag, cela supprimera le <div> tag et laissez le <span> tag.

donc

{% set mycontent %}
    {{ content.field_home_slide_snippet }}
{% endset %}
{{ mycontent|striptags('<span>') }}

https://twig.symfony.com/doc/2.x/filters/striptags.html

2
Bruce Davidson

Je pense que vous pouvez utiliser

{{ content.field_home_slide_snippet.0["#context"].value }}

ou activer le module de développement, puis utiliser

{{ kint(content.field_home_slide_snippet) }}

pour voir où se trouve la valeur dont vous avez besoin.

1
StevanRS