Fai in modo che un tipo di post appaia sopra ogni altro
Per impostazione predefinita, SearchWP restituisce i risultati ordinati per pertinenza utilizzando i pesi definiti nella configurazione del tuo Motore.
Ci sono alcuni casi in cui potresti volere che un tipo di post specifico appaia per primo anche se il suo peso di pertinenza non è il più alto.
Possiamo farlo personalizzando il modo in cui SearchWP calcola la pertinenza, e concedendo un 'peso bonus' straordinario per qualsiasi Prodotto restituito, facendolo risalire in cima ai risultati.
Questo peso bonus verrà applicato a tutti i Prodotti, quindi l'ordinamento dei Prodotti rispetterà comunque la pertinenza calcolata. Qualsiasi risultato non Prodotto sarà ordinato per pertinenza al di sotto di qualsiasi Prodotto che abbia ricevuto il peso bonus.
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; | |
| } ); |
Nota il nome del tipo di post name alla riga 7 può essere modificato in qualsiasi nome di tipo di post registrato per ottenere lo stesso risultato.
Vedi anche: Raggruppa i risultati della ricerca per origine (tipo di post) e imposta il loro ordine

