Suporte » Temas » Category – order/orderby

  • Criei um tema, no qual na página inicial os últimos posts são mostrados por categoria.

    Por exemplo,
    Tem a categoria filme que mostra seus últimos posts, a categoria notícias que mostram os seus respectivos e assim por diante. Cada um está mostrando os 4 últimos posts.

    Utilizei o seguinte código:

    <?php if (have_posts()) : ?><?php query_posts("showposts=4&cat_ID=9"); while (have_posts()) : the_post(); ?>

    No meu site também, criei a possibilidade de buscar os posts por categoria, que também estão sendo mostrados na ordem de publicação. Do mais novo ao mais ‘antigo’.
    Gostaria que nessa busca por categoria, os posts fossem mostrados por ordem alfabética e na página inicial continuassem na ordem de publicação. É possível?

    Já tentei inserir no functions.php o seguinte código:

    if ($query->is_category){
    $query->set(‘posts_per_page’, ’25’);
    $query->set(‘orderby’, ‘title’);
    $query->set(‘order’, ‘ASC’);
    $query->set(‘post_type’, ‘post’);
    }

    Porém com este código, tanto a página inicial, como a busca de posts por categoria ficam na ordem alfabética.
    Já tentei também inserir no category.php o query:

    <?php query_posts("order=ASC&orderby=title"); ?>

    Mas desse modo a página inicial fica em ordem de publicação, só que a busca por categoria fica em ordem alfabética, e posts de outras categorias aparecem nos resutados e dá erro no Page-navi e fala que nenhum link mais foi encontrado ( mesmo possuindo mais links).

    E se eu coloco o query com o ID da categoria, os posts aparecem corretamente, só os posts da categoria e em ordem alfabética, porém dá erro no Page-navi.

    <?php query_posts("order=ASC&orderby=title&cat=9"); ?>

    Obs: O Page-navi continua funcionando normalmente no resto do site.

    Tentei remover o Page-navi e usar os nav_links (Next and Previous Link) porém o problema persiste. Ao clicar pra próxima página os próximos links não aparecem.
    Utilizei o código padrão para isto:

    <?php posts_nav_link(' · ', 'previous page', 'next page'); ?>

    Já tentei tudo praticamente, mas não consegui resolver o problema.

    Alguém teria uma solução ou sugestão do que fazer?

    Obrigado desde já 🙂

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Vc precisa usar o filtro pre_get_posts para realizar esta modificação sem estragar um monte de coisas junto.

    Adicione ao seu function.php esta função.
    Obs: montem a função com as opções que vc deu aqui no post, se não funcionar como vc qer é só editar um pouco para acertar.

    E removi também o

    function wo_page_category_order( $query ) {
    	if ($query->is_category){
    		$query->set('posts_per_page', '25');
    		$query->set('orderby', 'title');
    		$query->set('order', 'ASC');
    		$query->set('post_type', 'post');
    	}
    	return $query;
    }
    add_filter( 'pre_get_posts', 'wo_page_category_order' );

    Se quiser dar uma olhada em uma função semelhante e explicada mais detalhadamente veja http://webotera.com/tutoriais-e-dicas/como-remover-paginas-da-busca/

    Criador do tópico heijmeijer

    (@heijmeijer)

    Obrigado Myst!
    Vou tentar depois 😀

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘Category – order/orderby’ está fechado para novas respostas.