为什么 HTML 在简单的 'title' 更改中呈现为纯文本?
Why is HTML rendering as Plain Text in a simple 'title' alteration?
我已经能够使用以下代码更改每个节点的 Comment Link 'title' 文本(默认呈现 'Add new comment'),但是如果我添加 HTML,它呈现为纯文本。我正在尝试在此文本之前添加一个 FontAwesome 图标 <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 参数,但我不确定这是否是问题所在。
有什么想法吗?
如果您不能在该字段中包含 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>
您可以通过将 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;
我已经能够使用以下代码更改每个节点的 Comment Link 'title' 文本(默认呈现 'Add new comment'),但是如果我添加 HTML,它呈现为纯文本。我正在尝试在此文本之前添加一个 FontAwesome 图标 <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 参数,但我不确定这是否是问题所在。
有什么想法吗?
如果您不能在该字段中包含 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>
您可以通过将 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;