Drupal:用l()创建仅锚链接

ack*_*ack 19 drupal

我想输出这个

<a href='#namedanchor'>link</a>
Run Code Online (Sandbox Code Playgroud)

使用l()函数,以便链接只跳转到当前页面上的锚点.

我希望这可行

l('link', '',  array('fragment' => 'namedanchor'));
Run Code Online (Sandbox Code Playgroud)

但它创造了一个绝对的链接,www.example.com/#namedanchor而不是www.example.com/currentpage#namedanchor

goo*_*orp 41

如果你想创建一个只包含片段的链接,你需要"欺骗"url函数.因为它将基本路径附加到所有内部URL,''将成为http://example.com.

您需要做的是将外部选项设置为true:

l('link', '',  array('fragment' => 'namedanchor', 'external' => TRUE));
Run Code Online (Sandbox Code Playgroud)

这将给出所需的

<a href='#namedanchor'>link</a>
Run Code Online (Sandbox Code Playgroud)

另外你可以像Jeremy建议的那样提供完整的网址.