我已经能够使用以下代码更改每个节点的Comment Link'标题'文本(在默认情况下呈现'添加新评论'),但如果我添加HTML,它将呈现为纯文本。我正在尝试在此文<i class="fa fa-comments" aria-hidden="true"></i>
function MODULE_node_view_alter(&$build) {
$node = $build['#node'];
if (isset($build['links']['comment']['#links']['comment-add'])) {
$build['links']['comment']['#links']['comment-add']['title'] = '<i class="fa fa-comments" aria-hidden="true"></i> Add Comment';
}
}
我传递的只是$ build参数,但我不确定这是否是问题。
有什么想法吗?
答案 0 :(得分:2)
您可以通过将html
选项设置为TRUE
来在链接中呈现HTML。
检查theme_links()以查看所有选项。
例如
theme('links', array(
'links' => array(
'title' => '<span>Title</span>',
'href' => 'node/1',
'html' => FALSE, // default
)
))
会导致span标记被转义,而
theme('links', array(
'links' => array(
'title' => '<span>Title</span>',
'href' => 'node/1',
'html' => TRUE,
)
))
将span标记呈现为html。
因此,在您的情况下,您需要添加以下行。
$build['links']['comment']['#links']['comment-add']['html] = TRUE;
答案 1 :(得分:0)
如果您不能在该字段中包含html,因为这是可能需要保留为纯文本和可翻译的字段类型,您可以使用css来添加图标。
a:before {
font-family: FontAwesome;
content: "\f086";
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<a>Add Comment</a>