Destaque de Termo

⚠️ Observação: Esta extensão está DESCONTINUADA a partir da versão 3.0 do SearchWP e será removida em breve ⚠️

Consulte esta documentação: https://searchwp.com/docs/settings/highlight/

Quando ativo, o Destaque de Termo irá automaticamente limpar o Título e o Resumo retornados das pesquisas e envolver os termos de pesquisa com um span, permitindo que você os destaque de uma forma que combine bem com o design do seu site.

O Destaque de Termo também inclui uma função que permite recuperar um resumo do post_content ou de um Campo Personalizado que contenha pelo menos um dos termos de pesquisa. Veja o uso abaixo.

Uso

A instalação desta Extensão é a mesma de todas as outras Extensões. Baixe o arquivo zip da sua Conta, carregue e instale como faria com qualquer outro plugin do WordPress. O Destaque de Termo aparecerá na sua lista de Plugins na área de administração do WordPress, e você poderá ativá-lo.

Uma vez ativado, o Destaque de Termo irá automaticamente destacar os termos dentro do Título e do Resumo para pesquisas nativas do WordPress. Os destaques são aplicados envolvendo os termos em <span class="searchwp-highlight" />, que você pode direcionar no seu CSS.

O Destaque de Termo também substituirá automaticamente as chamadas para the_excerpt() substituindo esse conteúdo por um resumo que contenha pelo menos um termo de pesquisa do conteúdo principal (por exemplo, o campo de conteúdo principal, não Campos Personalizados). Ele também destacará os termos neste conteúdo. Se você deseja desativar ou personalizar essa funcionalidade, consulte os filtros abaixo.

Você pode ir um passo além utilizando o Destaque de Termo para gerar um resumo de várias fontes potenciais (incluindo Campos Personalizados) filtrando automaticamente as chamadas para the_excerpt() nas páginas de resultados de pesquisa, assim:

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

Se em vez disso você quiser substituir manualmente as chamadas, pode usar algo como isto:

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

O Destaque de Termo não destaca automaticamente os termos para pesquisas em Motores de Busca Suplementares! Você precisará personalizar seu template enviando seu conteúdo através do destaque antes de exibi-lo, assim:

<?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: o trecho acima tem o objetivo de representar a personalização que você precisaria fazer no template de exemplo de resultados do Motor de Busca Suplementar, substituindo APENAS a saída dos resultados da pesquisa, não é um template de página inteiro.

Filtros

Existem alguns filtros a serem observados ao usar o Destaque de Termo:

searchwp_th_auto_filter_excerpt
Define se o Destaque de Termo substitui automaticamente the_excerpt() por um resumo contendo termos de pesquisa. O padrão é true, para desativar:

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

searchwp_th_num_words
Define o número de palavras que o Destaque de Termo incluirá ao construir um resumo que contenha pelo menos um termo de pesquisa. O padrão é 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
Instrui o Destaque de Termo a ignorar o destaque de termos para certos motores de busca. O padrão é nenhum.

<?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
Se uma postagem for protegida por senha, o Term Highlight retornará uma string personalizada. O padrão é o padrão principal do WordPress: Não há resumo porque esta é uma postagem 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

Crie uma Experiência de Pesquisa WordPress Melhor Hoje

Nunca mais perca visitantes para resultados de pesquisa inúteis. O SearchWP torna a criação de sua própria pesquisa inteligente do WordPress rápida e fácil.

Get SearchWP Now
Ícone de Múltiplos Mecanismos de Busca