Como o WordPress procura trabalho nos bastidores?

9

Estou usando a pesquisa do WordPress para pesquisar uma variedade de tipos de postagem personalizados e permitir que o usuário faça um detalhamento de cada tipo de postagem individual.

No entanto, eu estou achando que o WordPress não está retornando o que eu considero ser as melhores correspondências primeiro. Por exemplo, se eu pesquisar pela Microsoft, as páginas que contêm o termo de forma irregular ainda serão retornadas antes das páginas que usam o termo regularmente.

Basicamente, estou tentando encontrar algumas informações sobre como o WordPress classifica as páginas e determina a relevância e se eu posso influenciar isso sem ter que instalar nenhum plug-in .

Qualquer ajuda muito apreciada.

    
por chrisd 27.09.2013 / 17:48

2 respostas

10

EDITAR - A versão atual do WordPress é compatível com relevância, portanto, essa resposta não é mais precisa.

Não há conceito de classificação ou relevância, é apenas uma simples consulta LIKE no título e no conteúdo da postagem:

($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')

Você pode usar o filtro posts_search para modificar ou substituir completamente a consulta de pesquisa pela sua. De /wp-includes/query.php :

// Allow plugins to contextually add/remove/modify the search section of the database query
$search = apply_filters_ref_array('posts_search', array( $search, &$this ) );

Veja também os filtros de consulta disponíveis na página WP_Query do Codex .

    
por Milo 27.09.2013 / 18:27
5

Como o WordPress 3.7 (outubro de 2013) , os resultados da pesquisa são ordenados pelos seguintes critérios (ver ticket 7394 ):

  • A frase completa corresponde aos títulos das postagens.
  • Todos os termos de pesquisa em títulos de postagens.
  • Quaisquer termos de pesquisa nos títulos das postagens.
  • A frase completa corresponde ao conteúdo da postagem.

Cada seção e todas as postagens restantes são classificadas por data.

Existem também novos filtros:

  • wp_search_stopwords , para filtrar palavras de parada ignoradas em WHERE .
  • posts_search_orderby , para filtrar o ORDER BY ao ordenar os resultados da pesquisa.
por fuxia 16.02.2014 / 18:54

Tags