SearchWP Documentation

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

Verwenden eines benutzerdefinierten Feldes zur Priorisierung von Suchergebnissen

Standardmäßig gibt SearchWP Suchergebnisse zurück, die nach berechnetem Relevanzgewicht absteigend sortiert sind.

Mit anderen Worten: Die relevantesten Ergebnisse steigen basierend auf den von Ihnen festgelegten Gewichten auf dem Einstellungsbildschirm der Engine für Ihre Suchmaschine(n) nach oben. Die direkte Kontrolle über die Attributrelevanz erleichtert die Kontrolle darüber, wie Suchergebnisse eingestuft werden.

Das Relevanzsystem von SearchWP kann nach Ihren Wünschen angepasst werden. Dieser Artikel beschreibt, wie Sie den numerischen Wert eines benutzerdefinierten Felds (postmeta) verwenden, um die Rangfolge von Suchergebnissen zu steuern.

Dies erstellt im Wesentlichen eine „Boje“, die die Relevanzgewichtsberechnung von SearchWP überschreibt und Ergebnisse basierend auf ihrem benutzerdefinierten Feldwert einstuft.

Mit dieser Anpassung werden Ergebnisse mit einem benutzerdefinierten Feldwert höher eingestuft als solche ohne einen benutzerdefinierten Feldwert. Ergebnisse mit dem benutzerdefinierten Feldwert werden zuerst nach diesem benutzerdefinierten Feldwert und dann nach der Relevanz von SearchWP sortiert. Ergebnisse ohne den benutzerdefinierten Feldwert werden nach der Relevanz von SearchWP sortiert.

Siehe auch: Relevanzgewicht für kürzlich veröffentlichte Einträge nach Datum hinzufügen

All hooks should be added to your custom SearchWP Customizations Plugin.

<?php
// Use a Custom Field as a buoy to supersede SearchWP's relevance weight sorting.
// @link https://searchwp.com/documentation/knowledge-base/custom-field-prioritize-results/
add_filter( 'searchwp\query\mods', function( $mods, $query ) {
global $wpdb;
$meta_key = 'my_buoy_meta_key';
// Add the buoy to these post types:
$post_types = [ 'post', 'page', ];
foreach ( $post_types as $post_type ) {
$mod = new \SearchWP\Mod();
$alias = \SearchWP::$index->get_alias();
$meta_alias = 'my_searchwp_sort_' . $post_type;
$mod->column_as( $wpdb->prepare( "(
SELECT meta_value
FROM {$wpdb->postmeta}
WHERE
{$wpdb->postmeta}.post_id = {$alias}.id
AND {$wpdb->postmeta}.meta_key = %s
)", $meta_key ),
$meta_alias );
$mod->order_by( "{$meta_alias} + 0", 'ASC', 2 );
$mods[] = $mod;
}
return $mods;
}, 30, 2 );

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