Как сделать подсветку результатов поиска без плагинов

Если вы хотите, чтобы слова, которые вы ищите, были подсвечены каким-нибудь ярким цветом, то можете улучшить файл поиска. Однако это улучшение подходит не всем – некоторые используют нестандартные темы без файла search.php. Да и результаты поиска указанный способ подсвечивает только одним цветом, а хочется, чтобы при поиске нескольких слов они были выделены разными цветами. Чтобы гарантированно добиться такой подсветки текста к результатах поиска, можете использовать функцию, пример которой приведу ниже.

Откройте файл functions.php и вставьте в него такой код:

function search_backlight($text, $echo=true) 
{
$st1 = 'color: #000; background: #B6FF00;';
$st2 = 'color: #000; background: #5B7F00;';
$st3 = 'color: #000; background: #DAFF7F;';
$st4 = 'color: #000; background: #6D7F3F;';
$st5 = 'color: #000; background: #B6FF00;';
$st6 = 'color: #000; background: #B6FF00;';

$query_terms = get_query_var('search_terms');
if ( empty($query_terms) ) $query_terms = array(get_query_var('s'));
if ( empty($query_terms) ) return;

foreach ($query_terms as $term) 
        {
        $n++;
        if ($n==1) $style=$st1;
        elseif($n==2) $style=$st2;
        elseif($n==3) $style=$st3;
        elseif($n==4) $style=$st4;
        elseif($n==5) $style=$st5;
        elseif($n==6) $style=$st6;

        $term = preg_quote($term, '/');
        $text = preg_replace("/(?<!<|</)($term)/iu","$1",$text);
    }
    if($echo) return print $text;
    else return $text;
}

add_filter('the_title', 'search_backlight');
add_filter('the_excerpt', 'search_backlight');
add_filter('the_content', 'search_backlight');

Этот код подсвечивает найденный текст, если этот текст выводится функциями the_title (заголовки), the_excerpt (содержимое) и the_content (содержимое).

Пример: Открылась бездна звезд полна, звездам числа нет, бездне – дна.

Оригинал кода можно посмотреть здесь: http://wp-kama.ru/id_39/podsvechivaem-rezultatyi-poiska-bez-plaginov.html

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*