SearchWP Documentation

Consultez le guide d’installation, parcourez la base de connaissances, découvrez les nombreux hooks de SearchWP

Utiliser Elementor pour les moteurs supplémentaires

Utiliser Elementor pour concevoir et construire des formulaires et des résultats de recherche supplémentaires nécessite quelques étapes, mais c'est faisable !

Commencez par créer une nouvelle page

Pendant que vous êtes connecté à l'administration WordPress, commencez par créer une nouvelle page à l'aide d'Elementor.

Faites glisser un widget Formulaire de recherche :

IMPORTANT : Modifiez l'ID CSS dans le volet Avancé du formulaire de recherche et donnez-lui un ID unique. Pour cet article, nous utiliserons searchwp-supplemental-form :

Sous le widget Formulaire de recherche, ajoutez un widget Articles :

IMPORTANT : Un ID de requête doit être défini afin que nous puissions le marquer dans un hook. Développez le volet Requête du widget Articles et entrez un ID de requête unique. Pour cet article, nous utiliserons searchwp-supplemental :

Ces deux widgets faciliteront la recherche dans votre moteur supplémentaire.

Ajouter les hooks nécessaires

Quelques hooks sont nécessaires pour que tout fonctionne. Vous pouvez les ajouter au fichier functions.php de votre thème :

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

Le premier hook (lignes 7-18) ajoute un input caché au formulaire de recherche.

Le second hook (lignes 20-28) recherche cet input caché et s'il est trouvé, il redirigera vers notre page de moteur supplémentaire.

NOTE : L'ID de la page dans cet article est 18, vous devez mettre à jour l'ID (voir ligne 22) avec l'ID de votre nouvelle page sur laquelle nous travaillons.

Le troisième et dernier hook (lignes 30-68) est responsable de la substitution du contenu du widget Articles que nous avons ajouté avec les résultats de SearchWP.

NOTE : Le nom du moteur supplémentaire doit être mis à jour (voir ligne 45) pour correspondre au nom du moteur supplémentaire que vous souhaitez rechercher.

Créez dès aujourd'hui une meilleure expérience de recherche WordPress

Ne perdez plus jamais de visiteurs à cause de résultats de recherche inutiles. SearchWP rend la création de votre propre recherche WordPress intelligente rapide et facile.

Get SearchWP Now
Icône de moteurs de recherche multiples