Problemas na paginação query_posts() do wordpress

by @emersonbroga. 3 Comments

Olá galera,

Hoje trabalhando com o WordPress passei por um problema que eu demorei muito pra resolver.

A situação é a seguinte, precisava fazer uma busca nos posts de uma categoria especifica e exibir somente 2 posts.
O problema é que usando essa “query_post()” customizada, a paginação nativa do WordPress não funcionava corretamente. Sempre apresentava o erro “Not Found“!

Pequisei por vários blogs, e encontrei umas respostas bacanas, como a do SytlizedWeb , porem mesmo com a solução apresentada, não consegui resolver meu problema.

A solução apresentada foi:

if (have_posts()) :
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts("category_name=alguma-categoria&showposts=2&paged=$paged");
    while (have_posts()) : the_post();
	/** Restante do loop **/

O problema é que mesmo assim não funcionou, e depois de algum tempo eu fui descobrir que no Wp-Admin em : Settings>>Reading você tem a opção de “Blog pages show at most” que por padrão vem 10. Sendo assim você deve alterá-la para 1, pois aí o wordpress ira buscar apenas os posts que você solicitar no parametro “showposts“.

Obrigado.
[ratings]

  • http://www.davidwashin.com.br David

    Olá amigo, essa solução para paginação realmente funciona quando aplicada ao arquivo index.php, mas ao tentar utilizá-la em arquivos como o “category.php” ou “category-id.php” não funciona do mesmo jeito…
    Existe alguma adaptação…
    estou precisando disso…

    vlw mesmo…

  • Joao G

    cara, ajudou muito. na verdade, me salvou. rodei o google por uma solução e só encontrei aqui. grande abraço sucesso.

  • http://www.facebook.com/wellingtonlorindo Wellington Lorindo

    David, tente usar o wp_reset_query() antes do query_posts(), assim você limpa a query do WP.
    Verifique também se não existem pages, taxonomys e custom posts com o mesmo slug, caso exista
    vai dar conflito. Tente mudar o slug da página para testar.
    Artigo show de bola!