我需要添加target="_blank"
和rel="noFollow noReferrer"
的一些链接。我没有访问核心代码,所以我设法做到这一点的唯一方法是使用jquery。
我的HTML是。
<div class="tLink">
<p>
<a href="http://linkhere.com" title="tLink title here">tLink</a>
</p>
</div>
我的jQuery代码:
$( '.tLink p a' ).attr( 'target', '_blank' );
$( '.tLink p a' ).attr( 'rel', 'noFollow noReferrer' );
但是,如果最终用户未在浏览器中启用javascript,则无法使用此功能。所以,还有其他任何方式用PHP做到这一点?或者在drupal主题的template.php
文件中的最后一个案例中?
由于
答案 0 :(得分:0)
对于99%的案例,您只能在template.php中覆盖theme_link()
:
function MYTHEME_link($variables) {
$variables['options']['attributes']['target'] = '_blank';
$variables['options']['attributes']['rel'] = 'noFollow noReferrer';
return '<a href="' . check_plain(url($variables['path'], $variables['options'])) . '"' . drupal_attributes($variables['options']['attributes']) . '>' . ($variables['options']['html'] ? $variables['text'] : check_plain($variables['text'])) . '</a>';
}
我说99%是因为前提依赖于安装中的每个模块“行为”本身,并使用l()
函数来准备链接。如果没有,您可能需要单独修补每个模块。
另外请记住,上面的代码将会破坏任何现有的目标/ rel属性(不附加到它们),因此您的逻辑可能需要更复杂一些才能进行补偿。