在 Drupal Twig 模板上扩展 link 字段输出

Extend link field output on Drupal Twig Template

我正在尝试找出如何使用 HTML 实体(如 »)扩展 Drupal 8 中的公共 Link 字段。 我的第一次尝试是该领域的预处理功能。不幸的是,我没有设法将 link 的 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>&raquo;</span>";
      $variables['items'][$idx]['content']['#url']->setOption('html', true);
    }
  }
}

这没有用。所以我想到的唯一解决方案是在模板中手动生成一个 Link 。只是感觉不对。这是我的做法

  <a href="{{ node.field_slideshow_link.0.url }}">{{ node.field_slideshow_link.0.title }} <span>&raquo;</span></a>

有没有人知道如何更优雅地解决这个问题?

这个也有问题。找到以下解决方案

$url = [
'#title' => new FormattableMarkup('&@text;', ['@text' => t('raquo')]);
//The rest
];

使用 html 元素(例如 span)进行此操作,因此不确定它是否适用于此。让我知道!