Mise en surbrillance des termes

⚠️ Note : Cette extension est OBSOLÈTE depuis la version 3.0 de SearchWP et sera bientôt supprimée ⚠️

Veuillez consulter cette documentation : https://searchwp.com/docs/settings/highlight/

Lorsqu'il est actif, Term Highlight nettoie automatiquement le titre et l'extrait renvoyés par les recherches et encapsule les termes de recherche dans une balise span, vous permettant de les mettre en surbrillance d'une manière qui correspond bien à la conception de votre site.

Term Highlight inclut également une fonction vous permettant de récupérer un extrait du post_content ou d'un champ personnalisé qui contient au moins un des termes de recherche. Voir l'utilisation ci-dessous.

Utilisation

L'installation de cette extension est la même que pour toutes les autres extensions. Téléchargez le fichier zip depuis votre compte, téléchargez et installez comme n'importe quel autre plugin WordPress. Term Highlight apparaîtra dans votre liste de plugins dans la zone d'administration de WordPress, et vous pourrez l'activer.

Une fois activé, Term Highlight mettra automatiquement en surbrillance les termes dans le titre et l'extrait pour les recherches WordPress natives. Les mises en surbrillance sont appliquées en encapsulant les termes dans <span class="searchwp-highlight" />, que vous pouvez cibler dans votre CSS.

Term Highlight remplacera également automatiquement les appels à the_excerpt() en remplaçant ce contenu par un extrait contenant au moins un terme de recherche du contenu principal (par exemple, le champ de contenu principal, pas les champs personnalisés). Il mettra également en surbrillance les termes dans ce contenu. Si vous souhaitez désactiver ou personnaliser cette fonctionnalité, veuillez consulter les filtres ci-dessous.

Vous pouvez aller plus loin en utilisant Term Highlight pour générer un extrait à partir d'un certain nombre de sources potentielles (y compris les champs personnalisés) en filtrant automatiquement les appels à the_excerpt() sur les pages de résultats de recherche comme suit :

<?php
function searchwp_term_highlight_auto_excerpt( $excerpt ) {
global $post;
if ( ! is_search() ) {
return $excerpt;
}
// prevent recursion
remove_filter( 'get_the_excerpt', 'searchwp_term_highlight_auto_excerpt' );
$global_excerpt = searchwp_term_highlight_get_the_excerpt_global( $post->ID, null, get_search_query() );
add_filter( 'get_the_excerpt', 'searchwp_term_highlight_auto_excerpt' );
return wp_kses_post( $global_excerpt );
}
add_filter( 'get_the_excerpt', 'searchwp_term_highlight_auto_excerpt' );
view raw functions.php hosted with ❤ by GitHub

Si vous préférez remplacer manuellement les appels, vous pouvez utiliser quelque chose comme ceci :

<?php
/* SearchWP Term Highlight offers an alternative to the_excerpt()
If you're looking to generate any sort of excerpt based on one of the following:
- the actual excerpt
- the generated excerpt from the post content
- the post content itself
- string-based custom field values
this function is for you. It will try to find one of the above (in that order)
and output something with at least one search term in it (if possible)
*/
// echo the excerpt (designed to be used IN PLACE OF the_excerpt
if( function_exists( 'searchwp_term_highlight_the_excerpt_global' ) ) {
searchwp_term_highlight_the_excerpt_global();
}
// return the excerpt (designed to be used IN PLACE OF get_the_excerpt
if( function_exists( 'searchwp_term_highlight_get_the_excerpt_global' ) ) {
$excerpt = searchwp_term_highlight_get_the_excerpt_global();
}
view raw gistfile1.php hosted with ❤ by GitHub

Moteurs de recherche supplémentaires

Term Highlight ne met pas automatiquement en surbrillance les termes pour les recherches des moteurs de recherche supplémentaires ! Vous devrez personnaliser votre modèle en envoyant votre contenu dans le surligneur avant de le générer, comme suit :

<?php
// this snippet is based on SearchWP's sample Supplemental Search Engine results template found here:
// https://searchwp.com/docs/configuration/#supplemental
// **************************** NOTE ****************************
// this snippet is just a portion of your search results template
// **************************** NOTE ****************************
// these are the search terms
$query = isset( $_REQUEST['swpquery'] ) ? sanitize_text_field( $_REQUEST['swpquery'] ) : '';
$highlighter = false;
if( class_exists( 'SearchWP_Term_Highlight' ) ) {
$highlighter = new SearchWP_Term_Highlight();
}
?>
<?php foreach ( $posts as $post ): setup_postdata( $post ); ?>
<div class="post">
<h2>
<a href="<?php echo get_permalink(); ?>">
<?php
// highlight the title
$title = get_the_title();
if( $highlighter ) {
$title = $highlighter->apply_highlight( $title, $query );
}
echo wp_kses_post( $title );
?>
</a>
</h2>
<?php
// output an excerpt
$excerpt = get_the_excerpt();
if( $highlighter ) {
$excerpt = $highlighter->apply_highlight( $excerpt, $query );
}
echo wp_kses_post( $excerpt );
?>
<div class="custom-field-content">
<?php
// output highlighted content from a Custom Field
$custom_field = get_post_meta( get_the_ID(), 'my_custom_field_key', true );
if( $highlighter ) {
$custom_field = $highlighter->apply_highlight( $custom_field, $query );
}
echo wp_kses_post( $custom_field );
?>
</div>
</div>
<?php endforeach; ?>
view raw gistfile1.php hosted with ❤ by GitHub

NOTE : l'extrait ci-dessus est destiné à représenter la personnalisation que vous devrez apporter au modèle d'exemple de résultats de moteur de recherche supplémentaire, en remplaçant uniquement la sortie des résultats de recherche, ce n'est pas un modèle de page entière.

Filtres

Il y a quelques filtres à noter lors de l'utilisation de Term Highlight :

searchwp_th_auto_filter_excerpt
Définissez si Term Highlight remplace automatiquement the_excerpt() par un extrait contenant des termes de recherche. La valeur par défaut est true, pour désactiver :

<?php
add_filter( 'searchwp_th_auto_filter_excerpt', '__return_false' );
view raw gistfile1.php hosted with ❤ by GitHub

searchwp_th_num_words
Définissez le nombre de mots que Term Highlight inclura lors de la création d'un extrait contenant au moins un terme de recherche. La valeur par défaut est 55.

<?php
function my_searchwp_th_num_words() {
// use 75 words instead of the default 55
return 75;
}
add_filter( 'searchwp_th_num_words', 'my_searchwp_th_num_words' );
view raw gistfile1.php hosted with ❤ by GitHub

searchwp_th_excluded_engines
Indiquez à Term Highlight d'ignorer la mise en surbrillance des termes pour certains moteurs de recherche. La valeur par défaut est none.

<?php
function my_searchwp_th_excluded_engines( $load_posts, $search_args ) {
// DO NOT highlight terms when using the 'my_supplemental' search engine
return array( 'my_supplemental' );
}
add_filter( 'searchwp_th_excluded_engines', 'my_searchwp_th_excluded_engines', 10, 2 );
view raw gistfile1.php hosted with ❤ by GitHub

searchwp_th_password_required_message
Si un article est protégé par un mot de passe, Term Highlight renvoie une chaîne personnalisée. La valeur par défaut est celle du cœur de WordPress : Il n'y a pas d'extrait car il s'agit d'un article protégé..

<?php
function my_searchwp_th_password_required_message() {
return __( 'This entry is private.' );
}
add_filter( 'searchwp_th_password_required_message', 'my_searchwp_th_password_required_message' );
view raw gistfile1.php hosted with ❤ by GitHub

Créez dès aujourd'hui une meilleure expérience de recherche WordPress

Ne perdez plus jamais de visiteurs à cause de résultats de recherche inutiles. SearchWP rend la création de votre propre recherche WordPress intelligente rapide et facile.

Get SearchWP Now
Icône de moteurs de recherche multiples