ビューテンプレートviews-view-fields--nieuws--page.html.twig
をテーマに追加しました。
テンプレートは正しいです。編集すると、自分のWebサイトに結果が表示されます。
{% for field in fields %}
{{ field.separator }}
{{ field.wrapper_prefix }}
{{ field.label_html }}
{{ field.content }}
{{ field.wrapper_suffix }}
{% endfor %}
page.html.twig
では、次のように領域を出力します。
{{ page.content }}
しかし、私の出力にはHTMLタグが含まれています。これを解決するにはどうすればよいですか?
編集:HTMLがTwigを介してまったくレンダリングされているようです
{% set hello = '<strong>Hello</strong>' %}
{{ hello }}
<strong>
タグも出力します。
これは現在、views-view-fields.html.twigテンプレートの既知のバグです https://www.drupal.org/node/236342
HTMLをアンエスケープする必要があります。これを実現するには2つの方法があります。まず、フィールドを「未加工」としてマークすると、HTMLが正しくレンダリングされます。 {{ your_field | raw }}
は正常にレンダリングされるはずです。
2番目の手段として、twigの自動エスケープ機能を使用できます。
{% autoescape false %}
{{ your_field }}
{% endautoescape %}
このようにして、HTMLマークアップをエスケープしないようにtwigに指示しています。
上記の解決策のどれも私の場合はうまくいきませんでした。ここで私がコーディングしてそれを解決した方法
function mytheme_preprocess_views_view_field(&$variables) {
if ($variables['view']->id() == 'my_viewname' && $variables['field']->field == 'field_description') {
$output = $variables['field']->getValue($variables['row']);
$variables['output'] = ['#markup'=> $output];
}
}
Views-view-fields--my-viewname.html.twigでは、値を出力するだけです。自動スキャッピングやrawファイラーは不要
{{ fields.field_description.content }}