Einen Beitragstyp über allen anderen anzeigen lassen
Standardmäßig gibt SearchWP Ergebnisse zurück, die nach Relevanz sortiert sind, wobei die in Ihrer Engine-Konfiguration definierten Gewichtungen verwendet werden.
Es gibt Fälle, in denen Sie möchten, dass ein bestimmter Beitragstyp zuerst angezeigt wird, auch wenn sein Relevanzgewicht nicht das höchste ist.
Dies können wir erreichen, indem wir die Art und Weise anpassen, wie SearchWP die Relevanz berechnet, und jedem zurückgegebenen Produkt ein außergewöhnliches „Bonusgewicht“ gewähren, wodurch es an die Spitze der Ergebnisse gelangt.
Dieses Bonusgewicht wird auf alle Produkte angewendet, sodass die Sortierung der Produkte weiterhin die berechnete Relevanz berücksichtigt. Jedes Nicht-Produkt-Ergebnis wird nach seiner Relevanz unterhalb jedes Produkts sortiert, das das Bonusgewicht erhalten hat.
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // Give Products extraordinary weight boost to ensure Products show up first. | |
| // @link https://searchwp.com/documentation/knowledge-base/post-type-first-top/ | |
| add_filter( 'searchwp\query\mods', function( $mods ) { | |
| $post_type = 'product'; // Post type name. | |
| $source = \SearchWP\Utils::get_post_type_source_name( $post_type ); | |
| $mod = new \SearchWP\Mod( $source ); | |
| $mod->relevance( function( $runtime ) use ( $source ) { | |
| global $wpdb; | |
| return $wpdb->prepare( | |
| "IF( {$runtime->get_foreign_alias()}.source = %s, '999999999999', '0' )", | |
| $source | |
| ); | |
| } ); | |
| $mods[] = $mod; | |
| return $mods; | |
| } ); |
Beachten Sie, dass der Beitragstyp-Name in Zeile 7 in jeden registrierten Beitragstypnamen geändert werden kann, um dasselbe Ergebnis zu erzielen.
Siehe auch: Suchergebnisse nach Quelle (Beitragstyp) gruppieren und deren Reihenfolge festlegen

