J'ai donc une zone de texte avec résumé et je veux afficher le résumé avant le contenu. Donc, si j'utilise simplement {{ content.body }}
le texte est affiché sans le résumé.
Comment puis-je obtenir le résumé?
{{ content.body.summary }}
ne semble pas faire l'affaire
Dans votre fichier THEME.theme, vous pouvez simplement le définir également:
function THEME_preprocess_node(&$variables) {
$variables['node_teaser'] = $node_array['body'][0]['summary'];
}
Et puis affichez-le avec:
{{ node_teaser }}
La seule façon dont j'ai réussi à résoudre ce problème est:
si vous souhaitez uniquement cibler la valeur du résumé, vous pouvez cibler l'entité sur laquelle vous vous trouvez. Si vous êtes sur un nœud, vous pouvez le faire:
node.body.summary
Dans un paragraphe
paragraph.field_body.summary
Vous pouvez également obtenir le résumé du contenu avant comme ceci:
content.body['#object'].body.summary
Pas génial mais fera l'affaire pour l'instant.
Pour s'appuyer sur ce que 4k4 a écrit (et mis à jour pour 2018):
Vous choisissez d'abord la façon dont vous souhaitez que le champ soit formaté, puis vous l'imprimez.
1) Allez dans Structure> Types de contenu> VOTRE TYPE DE CONTENU> Gérer l'affichage> VOTRE MODE DE VUE.
2) Dans la colonne "Formateur", choisissez "Résumé ou découpé".
3) Enregistrez.
4) Dans votre fichier twig vous devriez pouvoir imprimer simplement {{body}} (c'est ce qui fonctionne pour moi, mais corrigez-moi si je me trompe et je mettrai à jour).
Cela fonctionne pour moi en utilisant le nœud dans un bloc View, et devrait également fonctionner sur le nœud.
Je l'ai fait fonctionner simplement en utilisant
{{ content.field_description['#items'][0].summary }}
où mon champ de description est field_description