Данный сниппет позволит выделить поисковую фразу в результатах поиска по сайта без использования каких-либо дополнительных WordPress-плагинов. Пример на скриншоте:

Нижепреведенный код с 2 функциями необходимо добавить в файл functions.php:
function search\_excerpt\_highlight() {
$excerpt = get\_the\_excerpt();
$keys = implode(‘|’, explode(‘ ‘, get\_search\_query()));
$excerpt = preg_replace(‘/(‘ . $keys .’)/iu’, ‘<strong class="search-highlight">\0</strong>’, $excerpt);
echo ‘<p>’ . $excerpt . ‘</p>’;
}
function search\_title\_highlight() {
$title = get\_the\_title();
$keys = implode(‘|’, explode(‘ ‘, get\_search\_query()));
$title = preg_replace(‘/(‘ . $keys .’)/iu’, ‘<strong class="search-highlight">\0</strong>’, $title);
echo $title;
}
Теперь перейдем в файл search.php отвечающий за отображение результатов поиска. В нем необходимо заменить 2 стандартные функций на наши новые функций, которые мы только что переписали. the_title() на search_title_highlight() и the_excerpt(), соответственно на search_excerpt_highlight().
В style.css можно добавить класс для того чтобы выделить найденную фразу с помощью фона:
.search-highlight {
background:#FFFFB6;
}
Опубликовано
Подробнее