Je crée un modèle personnalisé pour mon thème et je crée une page page.html.twig. Je veux appeler des champs de nœuds individuels dans des lignes distinctes. J'ai pu tout afficher avec succès, sauf le champ de paragraphe.
J'ai essayé.
{{ node.field_benefits }}
{{ node.field_benefits.value }}
{{ paragraph.field_benefits }}
{{ paragraph.field_benefits.value }}
{{ node.paragraphs.field_benefits }}
Et rien n'a fonctionné. Quelqu'un a-t-il une idée de la structure correcte à appeler dans le module de paragraphe?
Ou est-ce qu'une fonction fonctionnerait
{% if node.field_benefits %}
{% for field_items in node.field_benefits %}
{{ field_item.value }}
{% endfor %}
{% endif %}
Réponses:
Ajoutez d'abord un
paragraph--your_paragraph_machine_name.html.twig
dans le répertoire des modèles de votre thème.Vous pouvez accéder à vos champs de paragraphe en ajoutant des variables de brindille dans un format similaire à
{{ content.field_your_field }}
.Si vous ne voulez que la valeur du champ, c'est un peu plus compliqué. Par exemple, si vous aviez un champ Liste (texte) et que vous vouliez obtenir la valeur de l'option sélectionnée, vous pourriez faire quelque chose comme:
Vous pouvez toujours exécuter un
{{ dump(content) }}
pour voir la structure et obtenir les valeurs que vous recherchez. J'espère que cela t'aides!EDIT: Vous pouvez éviter toutes les boucles imbriquées idiotes. L'exemple ci-dessus doit être écrit comme:
Pour un champ Texte (simple), il pourrait ressembler à quelque chose comme:
Pour obtenir une valeur d'URL à partir d'un champ Lien, j'ai vu des suggestions comme:
Mais il aurait un préfixe "internal: /", donc j'ai eu plus de chance avec quelque chose comme ceci:
la source
paragraph.field_my_text.value
dans n'importe quel modèle de paragraphe pour générer la valeur simple et non formatée, tout commenode.field_my_text.value
dans un modèle de nœud.