Definire l'ordinamento secondario per i risultati con pertinenza corrispondente
Ci saranno momenti in cui la pertinenza di più risultati di ricerca sarà esattamente la stessa, lasciando a MySQL il compito di decidere come ordinare tali risultati con pertinenza corrispondente.
Utilizzando un \SearchWP\Mod puoi invece specificare come desideri che vengano ordinati i risultati con pertinenza corrispondente.
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // Add secondary sort to SearchWP results to sort matching | |
| // relevance results by Title in ASC order. | |
| add_filter( 'searchwp\query\mods', function( $mods, $query ) { | |
| global $wpdb; | |
| $mod = new \SearchWP\Mod(); | |
| $mod->set_local_table( $wpdb->posts ); | |
| $mod->on( 'ID', [ 'column' => 'id' ] ); | |
| $mod->order_by( function( $mod ) { | |
| return $mod->get_local_table_alias() . '.post_title'; | |
| }, 'ASC', 99 ); | |
| $mods[] = $mod; | |
| return $mods; | |
| }, 30, 2 ); |
Utilizzando questo snippet stiamo dicendo a SearchWP di implementare un meccanismo di ordinamento secondario per ordinare i risultati con punteggi di pertinenza corrispondenti per il loro Titolo del post definito in ordine ASC.
Questa è una clausola di ordinamento secondaria a causa della priorità impostata nella chiamata al metodo order_by() che è 99. Quando si imposta una clausola order_by() in un \SearchWP\Mod ogni clausola viene emessa secondo la sua priorità in ordine ASC.
Esiste un ordinamento predefinito principale per tutte le query di SearchWP alla priorità 10 per ordinare per relevance in ordine DESC.

