Funcionalidade de pesquisa complexa. Conselho necessário

4

Eu tenho um recurso de pesquisa bastante complexo, gostaria de alguns conselhos sobre.

Eu preciso criar uma pesquisa personalizada bastante avançada no Wordpress e gostaria de obter sua opinião sobre como posso alcançá-la. Eu fiz muitas buscas por plugins atuais, mas nada que realmente sirva para isso. Eu também olhei para criar funções personalizadas (function.php)

Funciona assim:

  • Insira palavras-chave em um campo de texto,
  • eles podem ser adicionados a uma palavra-chave "banco".
  • você pode selecionar a partir da lista suspensa do setor para pesquisar (postar categoria talvez).
  • Em seguida, outra lista suspensa para o país
  • e um final listando os meses publicados (setembro 2012, outubro 2012 etc)

Quando o botão de pesquisa é atingido, preciso exibir os resultados com base na relevância.

  • O resultado principal é "Filtros correspondentes": palavra-chave, setor, país e amp; encontro'.
  • Depois que não houver mais resultados correspondentes a todas as 4 opções de pesquisa, será exibido qualquer correspondência igual a 3,
  • então 2
  • e, eventualmente, apenas exibindo pesquisas de palavras-chave.

Portanto, a pesquisa é essencialmente

  • um campo de texto para conter todas as palavras-chave,
  • 3 campos de seleção suspensos
  • e depois o botão de pesquisa.

Não estou convencido de que esse seja o melhor método para armazenar uma lista de palavras-chave fornecidas pelo usuário antes de iniciar a pesquisa. Talvez seja necessário pensar em alternativas.

Espero que faça sentido até agora.

Meu conhecimento de como personalizar o wordpress é muito bom, mas nunca criei uma pesquisa antes. Eu gostaria de pedir opiniões para abordar isso como uma solução.

Espero que você possa ajudar.

Obrigado

    
por Elixir 02.10.2012 / 17:37

1 resposta

1

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.

    
por Nullvariable 10.10.2012 / 14:11

Tags