Definir Ordem Secundária por Classificação para Resultados com Relevância Correspondente
Haverá momentos em que a relevância de vários resultados de pesquisa será exatamente a mesma, deixando a critério do MySQL decidir como ordenar esses resultados com relevância correspondente.
Usando um \SearchWP\Mod você pode, em vez disso, especificar como deseja que os resultados com relevância correspondente sejam ordenados.
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 ); |
Usando este trecho, estamos dizendo ao SearchWP para implementar um mecanismo de ordenação secundário para ordenar os resultados com pontuações de relevância correspondentes por seu Título de postagem definido em ordem ASC.
Esta é uma cláusula de ordenação secundária devido à prioridade definida na chamada do método order_by(), que é 99. Ao definir uma cláusula order_by() em um \SearchWP\Mod, cada cláusula é emitida de acordo com sua prioridade em ordem ASC.
Existe uma ordem padrão principal para todas as consultas do SearchWP na prioridade 10 para ordenar por relevância em ordem DESC.

