X

Mettre en évidence les mots-clés dans les résultats de recherche dans le_excerpt et le_title

Snippets by IsItWP

La mise en évidence des mots-clés dans les résultats de recherche, dans le titre et l’extrait de l’article, permet aux utilisateurs de savoir ce qu’ils trouveront dans l’article.

Instructions : Ajoutez le code suivant au fichier functions.php de votre thème 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');

Vous pouvez également remplacer les mots-clés dans the_content et the_excerpt.

Commentaires   laisser une réponse

  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 décembre 29, 2016 à 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 avril 2, 2013 à 3:24 pm

      Change the replacement string from

      ''.$sr.''

      to

      '$1'

      1. Peter Onyegbule juillet 7, 2020 à 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?

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !