如何使用纯文本字段从 Drupal 段落呈现 html iFrame

我有一个网站,我试图让网站所有者在页面上输入 iframe 嵌入代码(使用段落模块),然后将其渲染出来,添加一个容器以使其始终响应。

但是,我遇到了树枝总是以文本形式输出的问题。如果我使用格式化的文本字段然后单击“源”并从仪表板粘贴代码,它会完美运行,但显然这对于​​站点管理员来说非常笨重并且很容易出错。我只想有一个纯文本字段。问题是即使我使用 {{ content.field_embed[0].value | raw }} 它也会以文本形式出现。无论如何,我错过了这个?不想让用户使用 CK 编辑器来进行简单的嵌入

stack overflow How to render html iFrame from Drupal paragraph using plain text field
原文答案
author avatar

接受的答案

@mhfleming,我遇到了和你完全一样的问题。使用过滤器 raw 仍然给我转义的 iframe,就像在 <iframe ... 中一样。我什至认为这个问题可能与贡献模块 Twig TweakTwig Field Value 之一有关,我正在使用的网站使用了它们,但这些并不是罪魁祸首。

我能够让我的代码与以下 Twig 片段一起工作:

{% set embed_code = {
  '#type': 'processed_text',
  '#text': content.field_embed_code[0]['#context']['value'],
  '#format': 'full_html',
} %}
<div class="responsive-embed">
  {{ embed_code }}
</div>

您的代码看起来非常相似。尝试用 field_embed 替换字段名称并尝试使用此代码段。


答案:

作者头像

遇到了同样的问题并找到了线程并找到了布鲁诺的答案,这给了我一个对我适用于纯文本字段的想法。

覆盖其中包含 iframe 代码的 field--name.html.twig 。然后使用这个结构打印字段(kint 是你的朋友) {{ item.content['#context']['value']|raw }}

这对我有用,并且使 iframe 渲染得很好。希望它能帮助别人。