Existem algumas maneiras de fazer isso. Certa vez, escrevi um código estendido para integrar o Apache Solr com a pesquisa do WordPress e o BuddyPress, e isso adicionou muita energia. Com algo como o Apache Solr, você pode personalizar o peso e fazer algumas coisas interessantes. O Solr é um mecanismo de pesquisa completo e você precisará executar um servidor para ele (ou comprar uma instância baseada na nuvem). Confira o Solr para WordPress plugin como um ponto de partida, se isso parece ser uma boa rota para você. O maior ponto negativo aqui é que você tem que executar o Solr e você precisa aprender um pouco sobre isso antes que ele tenha o poder que você precisa. Você ficará surpreso, no entanto, com a velocidade e a complexidade que o Solr pode fazer.
A próxima maneira mais poderosa de realizar o que você está procurando é escrever suas próprias funções de consulta de pesquisa usando o objeto $ wpdb. Esta não é uma opção fácil, mas é a mais provável de produzir os resultados que você está procurando. A outra ressalva com esta opção é que você terá que ficar de olho nas mudanças na estrutura do MySQL do WordPress, já que isso pode afetar suas consultas. Comece com algo assim e, em seguida, você precisará pesquisar as junções do MySQL para obter todas as consultas da maneira desejada:
global $wpdb;
$query = $wpdb->prepare("
SELECT *
FROM $wpdb->posts
WHERE post_title LIKE %s
", $search);
Outra solução mais limitada é que você pode usar o add_filter ('posts_search', 'my_custom_search_function') para criar um filtro que altere a pesquisa de resultados da postagem conforme desejado, mas isso pode não dar tudo que você precisa / deseja.
Como uma solução final, você pode olhar para as visualizações de plugins wp-types.com e ver se a função de criação de consultas funcionaria para você. Eu acho que um taxonomoy personalizado e / ou campos personalizados (através do plugin de tipos) podem ser capazes de realizar seus objetivos aqui.