我需要l()函数的帮助。我想创建一个锚到用户在管理表单中设置的url。它必须是一个外部链接。我已经将外部选项设置为true,但锚的行为仍然像内部一样,结果是mydruparkage.com/www.facebook.com而不是www.facebook.com
有人能帮我吗?我是drupal的初学者,所以也许我在代码中做错了什么:
$output .= l(t('Facebook'),$variables['facebook_link'], array('attributes'=>array('external' => TRUE)));
您不需要使用属性作为第三个参数的索引。
您只需使用array('external' => true)
:
$output .= l(t('Facebook'),$variables['facebook_link'], array('external' => TRUE));
评论更新
除了上面对第三个参数的更改外,第二个参数中的url还需要包括协议:http://www.facebook.com
或https://www.facebook.com
如果您没有包含协议,那么l()
将返回一个与您的网站相关的链接。
我遇到了同样的问题。Drupal一直输出我的域名/www.facebook.com。
您只需要将"http://"或其他协议附加到您的链接即可。否则Drupal会认为这是一个内部链接。为我修复了它。现在它显示为"www.facebook.com"。