Compatibilidade com JetSmartFilters para Elementor
SearchWP funciona com modelos de Arquivo de Pesquisa personalizados do Elementor, mas JetSmartFilters substitui os resultados do SearchWP sequestrando as consultas de arquivo.
Usando o JetEngine Listing Grid
Para integrar os resultados do SearchWP ao usar um JetEngine Listing Grid para exibir os resultados, você pode usar este hook:
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // Integrate SearchWP with JetSmartFilters search using | |
| // JetEngine Listing Grid to display results. | |
| // @link https://searchwp.com/documentation/knowledge-base/compatibility-with-jetsmartfilters-for-elementor/ | |
| add_action( 'pre_get_posts', function( $wp_query ) { | |
| if ( | |
| ! isset( $wp_query->query['jet_smart_filters' ] ) | |
| || empty( $wp_query->query['s'] ) | |
| ) { | |
| return; | |
| } | |
| $swp_query = new \SWP_Query( array( | |
| 'engine' => 'default', | |
| 's' => $wp_query->query['s'], | |
| 'fields' => 'ids', | |
| 'nopaging' => true | |
| ) ); | |
| $results = ! empty( $swp_query->posts ) ? $swp_query->posts : array( 0 ); | |
| $wp_query->set( 'post__in', $results ); | |
| $wp_query->set( 'post_type', 'any' ); | |
| $wp_query->set( 'post_status', 'any' ); | |
| $wp_query->set( 'orderby', 'post__in' ); | |
| $wp_query->set( 'order', 'DESC' ); | |
| $wp_query->set( 's', false ); | |
| }, 9999 ); |
Usando Arquivo do Elementor Pro
Existem duas opções se você estiver enfrentando este problema. Se você não estiver usando JetSmartFilters em nenhuma página de arquivo, pode navegar até a seguinte tela do Menu de Administração do WordPress: Elementor > JetSmartFilters Settings e desmarcar esta caixa de seleção:
Depois que isso for desmarcado, você pode clicar no botão Salvar e o problema será resolvido.
Se, no entanto, você estiver usando JetSmartFilters em outras páginas de arquivo, pode usar este trecho de código para desativar JetSmartFilters nas páginas de arquivo de pesquisa, permitindo que você use a personalização do modelo de arquivo de pesquisa do Elementor, utilizando o widget Elementor Archive Posts para exibir os resultados da pesquisa.
É uma correção rápida; você pode adicionar este trecho ao functions.php do seu tema (ou a um plugin personalizado que você criou) e ele permitirá que os resultados do SearchWP sejam exibidos:
| <?php | |
| // Prevents JetSmartFilters from overriding SearchWP's results. | |
| // @link https://searchwp.com/documentation/knowledge-base/compatibility-with-jetsmartfilters-for-elementor/ | |
| add_action( 'init', function() { | |
| add_filter( 'elementor/theme/posts_archive/query_posts/query_vars', function( $query ) { | |
| if ( is_search() && is_main_query() ) { | |
| remove_all_filters( 'elementor/theme/posts_archive/query_posts/query_vars' ); | |
| } | |
| return $query; | |
| }, -1 ); | |
| }, -998 ); |
O trecho acima aproveita as prioridades do Jet Smart Filter em seus hooks internos para impedir que ele substitua os resultados do SearchWP nas páginas de arquivo de resultados de pesquisa.


