Estou criando um modelo personalizado para o meu tema e construindo uma página page.html.twig. Quero chamar os campos dos nós individuais em linhas separadas. Consegui exibir com êxito tudo, exceto o campo de parágrafo.
Eu tentei.
{{ node.field_benefits }}
{{ node.field_benefits.value }}
{{ paragraph.field_benefits }}
{{ paragraph.field_benefits.value }}
{{ node.paragraphs.field_benefits }}
E nada funcionou. Alguém tem alguma idéia da estrutura correta para chamar no módulo de parágrafo?
Ou seria um trabalho de função
{% if node.field_benefits %}
{% for field_items in node.field_benefits %}
{{ field_item.value }}
{% endfor %}
{% endif %}
Respostas:
Primeiro adicione um
paragraph--your_paragraph_machine_name.html.twig
ao diretório de modelos do seu tema.O acesso aos campos de parágrafo pode ser feito adicionando variáveis de galho em um formato semelhante a
{{ content.field_your_field }}
.Se você deseja apenas o valor do campo, isso é um pouco mais complicado. Por exemplo, se você tivesse um campo Lista (texto) e desejasse obter o valor da opção selecionada, poderia fazer algo como:
Você sempre pode executar a
{{ dump(content) }}
para ver a estrutura e obter os valores que procura. Espero que isto ajude!Edição: você pode evitar todos os loops aninhados bobo. O exemplo acima deve ser escrito como:
Para um campo de texto (simples), pode ser algo como:
Para obter um valor de URL de um campo Link, já vi sugestões como:
Mas ele teria um prefixo "internal: /", então tive melhor sorte com algo assim:
fonte
paragraph.field_my_text.value
em qualquer modelo de parágrafo para gerar o valor simples e não formatado, comonode.field_my_text.value
em um modelo de nó.