SearchWP Documentation

Sehen Sie sich die Installationsanleitung an, durchsuchen Sie die Wissensdatenbank und erfahren Sie mehr über die vielen Hooks von SearchWP

Verwendung von Elementor f\"ur zus\"atzliche Engines

Die Verwendung von Elementor zum Entwerfen und Erstellen von ergänzenden Suchformularen und -ergebnissen erfordert einige Schritte, aber es ist machbar!

Beginnen Sie mit der Erstellung einer neuen Seite

Melden Sie sich im WordPress-Admin an und beginnen Sie mit der Erstellung einer neuen Seite mit Elementor.

Ziehen Sie ein Suchformular-Widget hinein:

WICHTIG: Bearbeiten Sie die CSS-ID im Bereich "Erweitert" für das Suchformular und geben Sie ihm eine eindeutige ID. Für diesen Artikel verwenden wir searchwp-supplemental-form:

Fügen Sie unter dem Suchformular-Widget ein Beiträge-Widget hinzu:

WICHTIG: Eine Query-ID muss festgelegt werden, damit wir sie in einem Hook kennzeichnen können. Erweitern Sie den Bereich Query für das Beiträge-Widget und geben Sie eine eindeutige Query-ID ein. Für diesen Artikel verwenden wir searchwp-supplemental:

Diese beiden Widgets erleichtern die Suche in Ihrer ergänzenden Engine.

Fügen Sie die notwendigen Hooks hinzu

Einige Hooks sind erforderlich, damit alles funktioniert. Sie können diese zu functions.php Ihres Themes hinzufügen:

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

Der erste Hook (Zeilen 7-18) fügt dem Suchformular ein verstecktes input hinzu.

Der zweite Hook (Zeilen 20-28) sucht nach diesem versteckten input und leitet, falls gefunden, zu unserer Seite für ergänzende Engines weiter.

HINWEIS: Die ID der Seite in diesem Artikel ist 18. Sie müssen die ID (siehe Zeile 22) auf die ID Ihrer neu erstellten Seite aktualisieren, mit der wir arbeiten.

Der dritte und letzte Hook (Zeilen 30-68) ist für die Überschreibung des Inhalts des Beiträge-Widgets, das wir hinzugefügt haben, mit Ergebnissen von SearchWP verantwortlich.

HINWEIS: Der Name der ergänzenden Engine muss aktualisiert werden (siehe Zeile 45), um dem Namen der ergänzenden Engine zu entsprechen, nach der Sie suchen möchten.

Erstellen Sie noch heute eine bessere WordPress-Sucherfahrung

Verlieren Sie nie wieder Besucher an unzureichende Suchergebnisse. SearchWP macht die Erstellung Ihrer eigenen intelligenten WordPress-Suche schnell und einfach.

Get SearchWP Now
Symbol für mehrere Suchmaschinen