컨텐츠를 렌더링 된 엔티티로 표시하는 노드에 대한보기를 작성했습니다. 무엇보다도, 나는 나뭇 가지 템플릿으로 body field를 출력합니다 :
{{ content.field_body }}
이제 텍스트를 200 자로 제한하고 3 개의 점을 넣고 싶습니다. 나는 그것을하기 위해 세 가지 다른 방법을 테스트했지만 아무것도 효과가 없습니다. 문제는 각 방법으로 HTML 문자를 세고 자릅니다.
1 : "표시 관리"에 "Trimmed"형식을 추가했습니다. => 텍스트가 제한되어 있지만 올바르지 않습니다. 그리고 나는 세 개의 점이 없습니다.
2 : 나뭇 가지 템플릿의 텍스트를 다듬 었습니다. 그러나 텍스트를 세려면 먼저 렌더링해야합니다. 따라서, twig는 텍스트를 HTML로 출력합니다 (내 페이지에 HTML 태그가 표시됩니다!)
{% set text = content.field_body|render %}
{{ text|length > 200 ? text|slice(0, 200) ~ '...' : text }}
3 : template_preprocess_node ()에서 문제를 해결하려고했습니다. 여기에 HTML 마크 업 계산과 동일한 문제가 있습니다.
$body_text = $node->get('field_body')->getValue()[0]['value'];
$trimmed_text = substr($body_text, 0, 200) . '...';
텍스트를 올바르게 다듬을 수 있습니까?
당신의 도움을 주셔서 대단히 감사합니다!