X

Resaltar palabras clave en los resultados de búsqueda dentro de the_excerpt y the_title

Snippets by IsItWP

Resaltar las palabras clave en los resultados de búsqueda dentro del título y el extracto de la entrada permitirá a los usuarios saber lo que encontrarán en el artículo.

Instrucciones: Añada el siguiente código al archivo functions.php de su tema de WordPress.

function wps_highlight_results($text){
     if(is_search()){
     $sr = get_query_var('s');
     $keys = explode(" ",$sr);
     $text = preg_replace('/('.implode('|', $keys) .')/iu', '<strong class="search-excerpt">'.$sr.'</strong>', $text);
     }
     return $text;
}
add_filter('the_excerpt', 'wps_highlight_results');
add_filter('the_title', 'wps_highlight_results');

También puede disfrutar sustituyendo palabras clave en the_content y the_excerpt.

Comentarios   Deja una respuesta

  1. hi, hope this finds you weel, thanks for the coding!

    i’m a portuguese speaker and i need the search to match the accents as weel(:

    for ex: if i search ‘mae’, it doesn’t hightlight the result, as in the text it shows ‘mãe’.

    how can i surpass this accent issua,please?

    thanks,
    kind regards

  2. Found issue with this function, if you search for a term that is exactly the same as a navigation menu item it messes the navigation, duplicates the key words inside the menu item along with couple of other issues.

    Any way of getting around this?
    Thank you
    Sibbo

    1. It may be conflicting with the theme. You may have to edit how the style is applied.

  3. it works like a charm. thank you

    1. Good to know!

  4. johannes khampepe diciembre 29, 2016 en 1:07 pm

    it works a magic…. muito obrigado.

  5. it messes up links that contain the search terms

  6. i have a function that limit my excerpt , how can i do that with it ?

  7. Thank you very much for this snippet. I have found a small issue with it though — it de-capitalizes the search term in the search results.

    For example, if I have a post titled “Include password protected posts” and then search for “include”, the title of my post in the search results will be displayed as “include password protected posts”.

    Any idea how this could be fixed?

    1. Harry William Love abril 2, 2013 en 3:24 pm

      Change the replacement string from

      ''.$sr.''

      to

      '$1'

      1. Peter Onyegbule julio 7, 2020 en 9:50 am

        Hi,

        I’m not fully deep into PHP coding so when I replaced the strings, I got errors.

        My site almost went down.

        1. You may want to check out this page: https://www.isitwp.com/properly-add-code-snippets-wordpress-site/

          Did you see any error messages? If so, what were the messages?

Añadir un comentario

Nos alegra que haya decidido dejar un comentario. Tenga en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de privacidad , y que todos los enlaces son nofollow. NO utilice palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

WordPress Launch Checklist

La lista definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de comprobación para el lanzamiento de su próximo sitio web de WordPress en un práctico ebook.
Sí, envíeme el ¡gratuito!