• Olá pessoal,

    Preciso ordenar os resultados da busca e posts das categorias por ordem alfabética.

    Fiz alguns testes com códigos que encontrei na internet e uma parte funcionou.

    Exemplo:

    No arquivo page.php eu tinha criado um loop personalizado, então acrescentei o código &orderby=meta_value&order=ASC&meta_key=nome e deu certo:

    <?php $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1; ?>
    <?php query_posts(“cat=82&showposts=12&paged=$paged&orderby=meta_value&order=ASC&meta_key=nome”); ?>
    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

    Mas nas paginas de categoria e busca continua trazendo os mais recentes.

    Eu abrir o arquivo content.php (arquivo do meu template que tem o html que personaliza a categoria e busca) e não tem nenhum if, while e etc, e se eu tento acrescentar alguma coisa nele bagunça todo o resultado da busca.

    Eu até achei um código para colocar no arquivo functions.php que parece que funciona, mas dá um erro estranho:

    function search_filter_ordem($query){
    if ($query->is_search){
    $query->set(‘posts_per_page’, ’12’);
    $query->set(‘orderby’, ‘nome’);
    $query->set(‘order’, ‘ASC’);
    }
    return $query;
    }
    add_filter(‘pre_get_posts’,’search_filter_ordem’);

    Quando eu uso o código acima a busca traz o resultado dessa forma:

    1º Dra. Carmem
    2º Dr. Paulo
    3º Dr. Eduardo
    4º Dr. Ricardo

    Não entendi porque o “Paulo” aparece na frente do “Eduardo”, eu olhei os dois cadastros e está normal, mas isso acontece com outros resultados também 🙁

    Será que tem algum filtro para ordenar os posts das categorias também? E porque será que na busca não ficou 100% em ordem alfabética?

    Abraço,
    Fernando

Visualizando 1 resposta (de um total de 1)
  • Criador do tópico Fernando Amorim

    (@fernando-amorim)

    Olá pessoal,

    Consegui ordenar os resultados, no arquivo search.php acrescentei esse código:

    <?php if (is_search() or is_category() or is_tag()) query_posts( $query_string . ‘&orderby=meta_value&order=ASC&meta_key=nome’ ); ?>

    Pena que não funcionou na pagina que lista as categorias, vou pesquisar mais um pouco senão usar um plano B, deixas as categorias institucionais e linkar elas para o resultados da busca.

    Fui realizar mais alguns testes e encontrei um erro rsrsr:

    Busquei por exemplo “Pediatra”, a busca exibe esses resultados:

    Dr. Bruno
    Dr. Carlos
    Dr. Eduardo
    Dra. Adriana
    Dra. Débora

    A busca não está ignorado o prefixo Dr. e Dra. , porque o correto seria:

    Dra. Adriana
    Dr. Bruno
    Dr. Carlos
    Dra. Débora
    Dr. Eduardo

    Eu tenho que acrescentar a função substr do PHP né? Mas não sei como encaixar isso no código 🙁 Um outra solução seria eu criar um novo campo nome e pedi para o meu cliente cadastrar os nomes sem o prefixo, problema que tem mais de 100 médicos cadastrados ‘-‘

    Abraço,
    Fernando

Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Ordenar resultados da busca e posts das categorias por ordem alfabética’ está fechado para novas respostas.