Слово выделения ветки (плагин Timber)

Я использую плагин Timber для WordPress.

И я создаю страницу поиска результатов. Я хотел бы выделить слово, которое искал пользователь.

В PHP я написал это:

$highlight = array();
if ($terms) {
foreach($terms as $term) {
array_push($highlight, '<span class="blue bold">'.$term.'</span>');
}
}

И это, чтобы заменить искомое слово в PHP:

<p class="date red"><?php echo str_ireplace($terms, $highlight, get_field('subtitle_post')); ?></p

Но я не знаю, как преобразовать это в Twig (Timber)?

1

Решение

Вы должны использовать пользовательский фильтр веток.

Из документации: расширение древесины. (Я пытался адаптировать его к вашему примеру, но вам может потребоваться изменить его)

/* functions.php */

add_filter('get_twig', 'add_to_twig');

function add_to_twig($twig) {
/* this is where you can add your own fuctions to twig */
$twig->addExtension(new Twig_Extension_StringLoader());
$twig->addFilter(new Twig_SimpleFilter('highlight', 'highlight'));
return $twig;
}

function highlight($text, array $terms) {

$highlight = array();
foreach($terms as $term) {
$highlight[]= '<span class="blue bold">'.$term.'</span>';
}

return str_ireplace($terms, $highlight, $text);
}

Тогда вы можете использовать свой собственный фильтр с

{{ yourField|highlight(words) }}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]