我正在试图弄清楚如何使用HTML实体(如»)扩展Drupal 8中的公共链接字段。
我的第一次尝试是该领域的预处理功能。很遗憾,我无法将链接的html
选项设置为true
这是我尝试的方式
function MYTHEME_preprocess_field(&$variables) {
if ($variables['element']['#field_name'] == 'field_slideshow_link'){
foreach ($variables['items'] as $idx => $item) {
$variables['items'][$idx]['content']['#title'] = $variables['items'][$idx]['content']['#title'] . " <span>»</span>";
$variables['items'][$idx]['content']['#url']->setOption('html', true);
}
}
}
这不起作用。因此,我提出的唯一解决方案是在模板中手动生成链接。只是感觉不对劲。这就是我做的方式
<a href="{{ node.field_slideshow_link.0.url }}">{{ node.field_slideshow_link.0.title }} <span>»</span></a>
有谁知道如何更优雅地解决这个问题?
答案 0 :(得分:0)
也有这个问题。找到以下解决方案
$url = [
'#title' => new FormattableMarkup('&@text;', ['@text' => t('raquo')]);
//The rest
];
这是否与像span这样的html元素一起使用,因此不确定它是否适用于此。让我知道!