Drupal - 使用 l 或 url 函数作为 mailto 链接

问题描述 投票:0回答:5

有人知道如何使用 l() 或 url() 函数创建 mailto 链接吗?

我正在运行 drupal 6。

drupal drupal-6 hyperlink
5个回答
36
投票

您需要使用绝对选项:

l('Mail me', 'mailto:[email protected]', array('absolute' => TRUE));

将会生成

<a href="mailto:[email protected]">Mail Me</a>

2
投票

一个好的做法是对字符串使用 t() 函数。代码应该是:

l(t('Mail me'), 'mailto:[email protected]', array('absolute' => TRUE));

2
投票

Drupal 9+ 解决方案

Drupal 核心在

Drupal\Core\Field\Plugin\Field\FieldFormatter\MailToFormatter
中有此代码:

      $elements[$delta] = [
        '#type' => 'link',
        '#title' => $item->value,
        '#url' => Url::fromUri('mailto:' . $item->value),
      ];

所以你可以像这样创建一个渲染数组:

[
  '#type' => 'link',
  '#title' => $email,
  '#url' => Url::fromUri('mailto:' . $email),
];

或者像这样:

Link::fromTextAndUrl($email, Url::fromUri('mailto:' . $email))->toRenderable();

0
投票

最好没有:

l() 对于内部链接的输出很有用:

它处理别名路径,并向指向当前页面的链接添加“活动”类属性(用于主题化)” 参见参考资料

您不需要以上任何一个。 url() 也是如此。您可以使用它们,但为什么不保持简单并直接使用 HTML 锚标记。


0
投票

在 Drupal 9 中,我没有找到其他解决方案:

$this->t('<a href="@link">This is a mail link</a>', ['@link' => 'mailto:[email protected]']);
© www.soinside.com 2019 - 2024. All rights reserved.