SearchWP Documentation

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

Usando o Elementor para Motores Suplementares

Usar o Elementor para projetar e construir formulários e resultados de pesquisa suplementares requer alguns passos, mas é possível!

Comece criando uma nova Página

Enquanto estiver logado no Admin do WordPress, comece criando uma nova Página usando o Elementor.

Arraste um Widget de Formulário de Pesquisa:

IMPORTANTE: Edite o ID CSS no painel Avançado para o Formulário de Pesquisa e dê a ele um ID exclusivo. Para este artigo, usaremos searchwp-supplemental-form:

Abaixo do Widget de Formulário de Pesquisa, adicione um Widget de Posts:

IMPORTANTE: Um ID de Consulta deve ser definido para que possamos marcá-lo em um hook. Expanda o painel Consulta para o Widget de Posts e insira um ID de Consulta exclusivo. Para este artigo, usaremos searchwp-supplemental:

Esses dois Widgets facilitarão a pesquisa em seu motor suplementar.

Adicione os hooks necessários

Alguns hooks são necessários para fazer tudo funcionar. Você pode adicioná-los ao functions.php do seu tema:

<?php
// @link https://searchwp.com/documentation/knowledge-base/using-elementor-for-supplemental-engines/
// We need to flag the search form.
add_action( 'elementor_pro/search_form/after_input', function( $form ) {
// Check to see if this is the right Search Form.
$settings = $form->get_data( 'settings' );
if ( isset( $settings['_element_id'] ) && 'searchwp-supplemental-form' == $settings['_element_id'] ) {
?>
<input type="hidden" name="searchwp" value="supplemental" />
<?php
}
} );
// Redirect when applicable.
add_action( 'template_redirect', function() {
if ( is_search() && ! empty( $_GET['searchwp'] ) && 'supplemental' === $_GET['searchwp'] ) {
wp_safe_redirect( add_query_arg( array(
'swpquery' => get_search_query(),
), get_permalink( 18 ) ) );
exit();
}
} );
// Provide Search results.
add_filter( 'elementor/query/query_args', function( $query_vars, $widget ) {
// Check to see if this is the right Widget.
$settings = $widget->get_data( 'settings' );
if ( is_admin()
|| ! isset( $settings['posts_query_id'] )
|| ( ! empty( $settings['posts_query_id'] ) && 'searchwp-supplemental' !== $settings['posts_query_id'] ) ) {
return $query_vars;
}
// This form field was set up in Elementor.
$query = isset( $_GET['swpquery'] ) ? sanitize_text_field( $_GET['swpquery'] ) : '';
if ( ! empty( $query ) ) {
// Perform the search.
$searchwp = new SWP_Query( array(
's' => $query,
'engine' => 'supplemental', // Engine to search.
'fields' => 'ids',
'posts_per_page' => -1,
) );
if ( empty( $searchwp->posts ) ) {
$searchwp->posts = array( 0 );
}
// Override the query vars with SearchWP results.
$query_vars['post__in'] = $searchwp->posts;
$query_vars['post_type'] = 'any'; // Restricted by post__in.
$query_vars['post_status'] = 'any'; // Restricted by post__in.
$query_vars['orderby'] = 'post__in'; // Order by post__in.
$query_vars['order'] = 'DESC'; // Order descending.
} else {
// Force no results.
$query_vars['post__in'] = array( 0 );
}
return $query_vars;
}, 10, 2 );

O primeiro hook (linhas 7-18) anexa um input oculto ao formulário de pesquisa.

O segundo hook (linhas 20-28) procura por esse input oculto e, se encontrado, redirecionará para a nossa página de motor Suplementar.

OBSERVAÇÃO: O ID da Página neste artigo é 18, você deve atualizar o ID (veja a linha 22) para o ID da sua Página recém-criada com a qual estamos trabalhando.

O terceiro e último hook (linhas 30-68) são responsáveis por substituir o conteúdo do Widget de Posts que adicionamos com os resultados do SearchWP.

OBSERVAÇÃO: O nome do motor suplementar deve ser atualizado (veja a linha 45) para corresponder ao nome do motor suplementar que você deseja pesquisar.

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