Skip to content

Erro porque usei query_posts num loop interno

janeiro 3, 2009

O bug em que ao clicar num link, os posts exibidos não correspondiam a query string do link. No meu caso específico apareciam sempre os mesmos posts. O problema estava relacionado ao carrossel, pois este fazia:

<?php if ($aOptions[‘featured-cat’] != ”) { query_posts(‘showposts=6&cat=’ . $aOptions[‘featured-cat’]); } ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); $loopcounter++; ?>

— query_posts —

Query_posts can be used to control which posts show up in The Loop. It accepts a variety of parameters in the same format as used in your URL (e.g. p=4 to show only post of ID number 4).

Important note

The query_posts function is intended to be used to modify the main page Loop only. It is not intended as a means to create secondary Loops on the page. If you want to create separate Loops outside of the main one, you should create separate WP_Query objects and use those instead. Use of query_posts on Loops other than the main one can result in your main Loop becoming incorrect and possibly displaying things that you were not expecting.

The query_posts function overrides and replaces the main query for the page. To save your sanity, do not use it for any other purpose.
fonte: wordpress – codex
——————-

No meu caso, eu estava usando query_posts para gerar um loop secundário (o do carrossel), o que não é correto, pelos motivos citados acima.

A solução foi seguir o sugerido pelo próprio wordpres.

$my_query = new WP_Query(‘showposts=6&cat=’ . $aOptions[‘featured-cat’]);
if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); $loopcounter++; ?>

Anúncios
No comments yet

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: