Ajoutez un formulaire modal comme celui-ci à votre site avec l'extension de formulaire de recherche modal de SearchWP !
⚠️ 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.
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' ); |
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(); | |
| } |
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; ?> |
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.
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' ); |
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' ); |
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 ); |
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' ); |
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