SearchWP Documentation

Veja o guia de instalação, navegue pela Base de Conhecimento, descubra os muitos hooks do SearchWP

Exibir Fontes Personalizadas (ex: Usuários) nos Resultados da Pesquisa ao Vivo

Por padrão, a Pesquisa ao Vivo utilizará seu Motor Padrão, que é limitado a Fontes baseadas em objetos WP_Post (ex: Posts, Páginas, Tipos de Postagem Personalizados, etc.)

Podemos usar o hook searchwp_live_search_get_search_form_engine para usar um Motor Suplementar para os resultados da Pesquisa ao Vivo, mas da mesma forma que precisamos usar um modelo de resultados personalizado para um Motor Suplementar, precisamos usar um modelo de resultados personalizado para a Pesquisa Ajax ao Vivo se quisermos exibir resultados de uma Fonte personalizada.

A Pesquisa Ajax ao Vivo do SearchWP possui uma estrutura de modelo que podemos utilizar para exibir os resultados de nossas Fontes personalizadas.

Neste exemplo, montaremos um modelo de resultados da Pesquisa Ajax ao Vivo que leva em consideração os Usuários de nosso Motor suplementar:

Captura de tela da configuração do Motor

Neste site de exemplo, temos um Usuário com nome de usuário 'coffeefan' e nome de exibição 'Jane Doe':

Captura de tela de Usuários

Quando pesquisamos por coffee usando a Pesquisa Ajax ao Vivo, nosso modelo de resultados personalizado incluirá esse resultado e outro Post sobre café:

Resultado do usuário

Para implementar este modelo personalizado de resultados da Pesquisa ao Vivo, podemos criar uma pasta searchwp-live-ajax-search no diretório do nosso tema e, dentro dessa pasta, criar um arquivo search-results.php com este código:

<?php
// Execute a search using our supplemental SearchWP Engine.
// @link https://searchwp.com/documentation/knowledge-base/custom-source-results-live-search/
$search_query = isset( $_REQUEST['s'] ) ? sanitize_text_field( $_REQUEST['s'] ) : null;
$search_results = [];
if ( ! empty( $search_query ) && class_exists( '\\SearchWP\\Query' ) ) {
$searchwp_query = new \SearchWP\Query( $search_query, [
'engine' => 'supplemental', // The Engine name.
'fields' => 'all', // Load proper native objects of each result.
] );
$search_results = $searchwp_query->get_results();
}
?>
<?php if ( ! empty( $search_query ) && ! empty( $search_results ) ) : ?>
<?php foreach ( $search_results as $search_result ) : ?>
<?php
switch( get_class( $search_result ) ) {
case 'WP_Post':
?>
<div class="searchwp-live-search-result" role="option" id="" aria-selected="false">
<p><a href="<?php echo esc_url( get_permalink( $search_result->ID ) ); ?>">
<?php echo get_the_title( $search_result->ID ); ?> &raquo;
</a></p>
</div>
<?php
break;
case 'WP_User':
?>
<div class="searchwp-live-search-result" role="option" id="" aria-selected="false">
<p><a href="<?php echo get_author_posts_url( $search_result->data->ID ); ?>">
<?php echo esc_html( $search_result->data->display_name ); ?> &raquo;
</a></p>
</div>
<?php
break;
}
?>
<?php endforeach; ?>
<?php else : ?>
<p class="searchwp-live-search-no-results" role="option">
<em><?php esc_html_e( 'No results found.', 'swplas' ); ?></em>
</p>
<?php endif; ?>

Este modelo de resultados pode ser personalizado como desejar, exibindo vários atributos de cada tipo de resultado conforme determinado pela instrução switch.

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