Resolvendo problemas de paginação no WordPress
Um problema que muitos sofrem é a paginação dos posts quando se altera um Loop no WordPress. Por exemplo, geralmente usamos a função query_posts antes do Loop para que o WordPress mostre uma determinada categoria, ou uma determinada quantidade de posts. O problema é que quando usamos o query_posts, o WordPress é afetado, e assim a paginação não funciona corretamente. O usuário clica em “Próximos Posts”, e ele repete os mesmo posts novamente.
A solução é incluir um código no Loop, que irá fazer a paginação funcionar corretamente.
Primeiro, entre em uma das páginas do seu tema (index.php por exemplo). Localize no Loop, o código:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
Se você adicionou o query_posts, ele deve está algo assim:
<?php query_posts(’cat=10&showposts=6′); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
Para solucionar o problema, substitua o código por:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts("cat=10&showposts=6&paged=$paged"); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
* Nota: É importante que você mantenha as aspas duplas na função query_posts, pois só assim ele irá funcionar.
E está pronto!
Atualização: Caso a maneira acima não funcione…
Já aconteceu comigo de o código acima não funcionar, e então eu tive de procura outra maneira de resolver esse problema. Segue o código:
<?php
global $query_string; parse_str( $query_string, $my_query_array );
$paged = ( isset( $my_query_array['paged'] ) && !empty( $my_query_array['paged'] ) ) ? $my_query_array['paged'] : 1;
query_posts("cat=10&showposts=6&paged=$paged");
?>
Espero que uma dessas soluções possa ajuda.
28 respostas a "Resolvendo problemas de paginação no WordPress"