各ノードを変更できました」 コメントリンク 「タイトル」テキスト(デフォルトでは「新しいコメントを追加」をレンダリングする)は以下のコードを使用しますが、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パラメーターだけですが、これが問題なのかどうかはわかりません。
何か案は?
回答:
回答№1は2リンクでHTMLをレンダリングするには、 html
オプション TRUE
。 チェック 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;
回答№2の場合は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>