Queryposts diferente para cada categoria
-
Gente, estou com um problema.
<?php query_posts(‘showposts=1&cat=10,11,12&offset=2’);?>
Existe a possibilidade de customizar o offset de cada categoria no query_posts?
Exemplo, se offset=2 para categoria 10, offset=1 para categoria 11 e tals.
-
Que eu saiba não… Teria que criar 3 loops diferentes, um para cada categoria.
Use o get_posts ou visite http://codex.wordpress.org/The_Loop#Multiple_Loops
Cara, eu não entendi muito isso ai não. Vou explicar o que eu quero.
Tenho três sessões no meu site.
-> Notícia principal (2 posts no slider);
-> Notícia secundária (1 post);
-> Notícia terciaria (3 posts);Criei três categorias diferentes para cada uma delas. E configurei o querypost de cada uma para que quando fosse adicionado um post na notícia principal, a mais antiga que tivesse sendo exibida por ela, caisse na notícia secundária. A noticia secundária cairia para terciaria, e a mais antiga da terciária sumiria da index.
Isso tudo usando offset. Claro.
Só que se eu quiser adicionar um post DIRETAMENTE na noticia terciaria, por exemplo, sem passar pela notícia primária e secundária, o offset também entra em ação e o post não é mostrado.Como posso fazer esses três loops? Não entendi a seção lá do multiple loops
Segue o código para maior análise e entendimento.
Para que os posts caiam de um lugar para o outro é necessário que os posts que sejam colocados na notícia principal tenham selecionadas as três categorias.<div id="slider"> <?php query_posts('showposts=2&cat=10');?> <?php if (have_posts()): while (have_posts()) : the_post();?> <a href="<?php the_Permalink();?>"><img src="<?php echo get_option('home');?>/<?php $key="destaque-um-491-250";echo get_post_meta($post->ID,$key,true);?>" width="491px" height="250px" alt="<?php the_title();?>" title="<?php the_title();?>"/></a> <?php endwhile; else: ?> <?php endif;?> </div> <div class="bloco"> <div id="destaque-dois"> <?php query_posts('showposts=1&cat=11&offset=2');?> <?php if (have_posts()): while (have_posts()) : the_post();?> <a href="<?php the_Permalink();?>"><img src="<?php echo get_option('home');?>/<?php $key="destaque-dois-250-110";echo get_post_meta($post->ID,$key,true);?>" alt="" title="" width="250px" height="110px"> <h1 class="destaque-dois"><?php the_title();?></h1> <p><?php the_excerpt();?></p></a> <?php endwhile; else: ?> <?php endif;?> </div><!-- end destaque-dois --> <?php query_posts('showposts=2&cat=12&offset=3');?> <?php if (have_posts()): while (have_posts()) : the_post();?> <div id="destaque-tres"> <a href="<?php the_Permalink();?>"><img src="<?php echo get_option('home');?>/<?php $key="destaque-tres-69-68";echo get_post_meta($post->ID,$key,true);?>" alt="" title="" width="69px" height="68px"></a> <div id="leng-dois"> <a href="<?php the_Permalink();?>"><h1 class="destaque-dois"><?php the_title();?></h1> <p><?php the_excerpt();?></p></a> </div><!-- end leng-dois --> </div><!-- end destaque-tres --> <?php endwhile; else: ?> <?php endif;?> <div class="clearfix"></div> </div><!-- end bloco -->
Dei uma estudada lá no multiple loops e cheguei a isso, mas não deu certo.
Alguém pode me auxiliar, acho que já entendi a lógica, mas como só sei o básico de PHP estou errando na programação.<div id="slider"> <?php $my_query = new WP_Query('showposts=2&cat=10'); while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID;?> <a href="<?php the_Permalink();?>"><img src="<?php echo get_option('home');?>/<?php $key="destaque-um-491-250";echo get_post_meta($post->ID,$key,true);?>" width="491px" height="250px" alt="<?php the_title();?>" title="<?php the_title();?>"/></a> <?php endwhile; ?> </div> <div class="bloco"> <div id="destaque-dois"> <?php $my_query = new WP_Query('showposts=1&cat=11'); if (have_posts()) : while (have_posts()) : the_post(); if( $post->ID == $do_not_duplicate ) continue; ?> <a href="<?php the_Permalink();?>"><img src="<?php echo get_option('home');?>/<?php $key="destaque-dois-250-110";echo get_post_meta($post->ID,$key,true);?>" alt="" title="" width="250px" height="110px"> <h1 class="destaque-dois"><?php the_title();?></h1> <p><?php the_excerpt();?></p></a> <?php endwhile;?> </div><!-- end destaque-dois --> <?php $my_query = new WP_Query('showposts=2&cat=12'); if (have_posts()) : while (have_posts()) : the_post(); if( $post->ID == $do_not_duplicate ) continue; ?> <div id="destaque-tres"> <a href="<?php the_Permalink();?>"><img src="<?php echo get_option('home');?>/<?php $key="destaque-tres-69-68";echo get_post_meta($post->ID,$key,true);?>" alt="" title="" width="69px" height="68px"></a> <div id="leng-dois"> <a href="<?php the_Permalink();?>"><h1 class="destaque-dois"><?php the_title();?></h1> <p><?php the_excerpt();?></p></a> </div><!-- end leng-dois --> </div><!-- end destaque-tres --> <?php endwhile;?> <?php endif; ?> <div class="clearfix"></div> </div><!-- end bloco -->
Ninguém?
alguem?
Você pode fazer uma diminuição no offset com um custom field, acho que isso ajuda.
Seria + ou – assim, se o post que vc quer adicionar lá na categoria terciaria tivesse o custom field _post por exemplo, vc diminuiria o número do offset, é claro que o offset teria que estár sendo numerado com uma verificação do tipo, se tem um post com o custom field _post ele vale 2 e se não tiver vale 3.
que seria + ou – isso.
<?php
if ($my_query = get_post_meta($post->ID, ‘_post’, $single = true)){
$offset_post = 2; } else {$offset_post = 3;}
query_posts(‘posts_per_page=2&offset=’.$offset_post.”);
if (have_posts()) : while (have_posts()) : the_post();?>Opa ficou meio errado o código, vê se dá pra entender melhor agora
<?php if ($offset_post = get_post_meta($post->ID, '_post', $single = true)){ $offset_post = 2; } else {$offset_post = 3;} query_posts('posts_per_page=2&offset='.$offset_post.''); if (have_posts()) : while (have_posts()) : the_post(); ?>
- O tópico ‘Queryposts diferente para cada categoria’ está fechado para novas respostas.