Muitas pessoas tem uma dúvida referente à paginação de seus blogs/sites, quando modificam o Loop para customizá-lo. Por exemplo, é comum utilizar o query_posts antes do Loop para que ele mostre posts apenas de uma determinada categoria. Entretanto, isso pode acabar prejudicando a capacidade do WordPress de saber em que página ele está, e assim quando o usuário clica em “Próximos Posts”, ele acaba vendo os mesmos posts repetidos novamente.
Felizmente, a solução é simples. No arquivo apropriado (normalmente home.php ou index.php), localize o Loop. Ele deve começar com alguma coisa assim:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
Como seu loop está customizado, ele deve estar mais ou menos assim:
<?php query_posts(’cat=2&showposts=10′); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
Para resolver seu problema de paginação, acrescente o seguinte:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts("cat=2&showposts=10&paged=$paged"); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
Lembre-se que é importante que as aspas sejam duplas no query_posts, pois só assim ele vai reconhecer o $paged como uma variável, e não como um texto qualquer.
Pronto! Assim seu WordPress vai saber em que página está, e seus problemas estarão resolvidos.