希望在块标题中的每个单词周围添加span标记。我需要在标题中最后两个单词是一个更大的字体,也是一个不同的颜色。
答案 0 :(得分:1)
function MYTHEME_preprocess_block(&$variables) {
$block = $variables['block'];
if ($block->subject) {
$words = explode(' ', $block->subject);
$words[0] = '<span>' . $words[0] . '</span>';
$words[0] = '<span>' . $words[0] . '</span>';
$words[1] = '<span>' . $words[1] . '</span>';
$words[2] = '<span>' . $words[2] . '</span>';
$words[3] = '<span>' . $words[3] . '</span>';
$words[4] = '<span>' . $words[4] . '</span>';
$block->subject = implode(' ', $words);
}
}
在我的问题中在template.php中找到它,但是使用循环可能有一个更漂亮的实现。
答案 1 :(得分:1)
使用循环获取ThroneDigital的答案:
$newWords = array();
foreach(explode(' ', $block->subject) as $word) {
$newWords[] = '<span>' . $word . '</span>';
}
$block->subject = implode(' ', $newWords);
您也可以使用array_map()函数,但这需要您创建一个新函数,对于这么少的文本,它是不值得的。