Resaltado de Términos

⚠️ Nota: Esta extensión está OBSOLETA a partir de la versión 3.0 de SearchWP y se eliminará pronto ⚠️

Consulte esta documentación: https://searchwp.com/docs/settings/highlight/

Cuando está activo, Resaltado de Términos depurará automáticamente el Título y el Resumen devueltos por las búsquedas y envolverá los términos de búsqueda con un span, lo que le permitirá resaltarlos de una manera que coincida bien con el diseño de su sitio.

Resaltado de Términos también incluye una función que le permite recuperar un extracto del post_content o de un Campo Personalizado que contenga al menos uno de los términos de búsqueda. Consulte el uso a continuación.

Uso

La instalación de esta Extensión es la misma que la de todas las demás Extensiones. Descargue el archivo zip de su Cuenta, cárguelo e instálelo como cualquier otro plugin de WordPress. Resaltado de Términos aparecerá en su lista de Plugins en el área de administración de WordPress, y podrá activarlo.

Una vez activado, Resaltado de Términos resaltará automáticamente los términos dentro del Título y el Resumen para las búsquedas nativas de WordPress. Los resaltados se aplican envolviendo los términos en <span class="searchwp-highlight" />, que puede dirigir en su CSS.

Resaltado de Términos también anulará automáticamente las llamadas a the_excerpt() reemplazando ese contenido con un extracto que contenga al menos un término de búsqueda del contenido principal (por ejemplo, el campo de contenido principal, no los Campos Personalizados). También resaltará los términos en este contenido. Si desea deshabilitar o personalizar esta funcionalidad, consulte los filtros a continuación.

Puede ir un paso más allá utilizando Resaltado de Términos para generar un extracto de una serie de fuentes potenciales (incluidos los Campos Personalizados) filtrando automáticamente las llamadas a the_excerpt() en las páginas de resultados de búsqueda de la siguiente manera:

<?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 en su lugar desea reemplazar manualmente las llamadas, puede usar algo como esto:

<?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

Motores de Búsqueda Suplementarios

¡Resaltado de Términos no resalta automáticamente los términos para las búsquedas de Motores de Búsqueda Suplementarios! Deberá personalizar su plantilla enviando su contenido a través del resaltador antes de mostrarlo, de la siguiente manera:

<?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

NOTA: el fragmento anterior está destinado a representar la personalización que necesitaría hacer en la plantilla de resultados del motor de búsqueda suplementario de ejemplo, reemplazando ÚNICAMENTE la salida de los resultados de búsqueda, no es una plantilla de página completa.

Filtros

Hay un par de filtros a tener en cuenta al usar Resaltado de Términos:

searchwp_th_auto_filter_excerpt
Establece si Resaltado de Términos reemplaza automáticamente the_excerpt() con un extracto que contenga términos de búsqueda. El valor predeterminado es true, para deshabilitar:

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

searchwp_th_num_words
Define el número de palabras que incluirá Resaltado de Términos al crear un extracto que incluya al menos un término de búsqueda. El valor predeterminado es 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
Indica a Resaltado de Términos que omita el resaltado de términos para ciertos motores de búsqueda. El valor predeterminado es 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 una entrada está protegida con contraseña, Term Highlight devuelve una cadena personalizada. El valor predeterminado es el predeterminado del núcleo de WordPress: No hay resumen porque esta es una entrada protegida..

<?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

Cree hoy mismo una mejor experiencia de búsqueda en WordPress

No vuelva a perder visitantes por resultados de búsqueda inútiles. SearchWP facilita la creación de su propia búsqueda inteligente en WordPress.

Get SearchWP Now
Icono de múltiples motores de búsqueda