Suporte » Desenvolvendo com WordPress » Repetição QUERY_POSTS

  • Resolvido Enrico

    (@enricowebnet)


    Como fazer para não repetir posts no query_posts, exemplo:

    <?php query_posts('showposts=1&cat=1');?>
    <?php if (have_posts()): while (have_posts()) : the_post();?>
          <a href="<?php the_permalink(); ?>">
            <?php the_title(); ?>
          </a>
    <?php endwhile; else:?>
    <?php endif;?>

    e também tenha na mesma categoria

    <?php query_posts('showposts=1&cat=2');?>
    <?php if (have_posts()): while (have_posts()) : the_post();?>
          <a href="<?php the_permalink(); ?>">
            <?php the_title(); ?>
          </a>
    <?php endwhile; else:?>
    <?php endif;?>

    No caso de um post esteja nas categorias com ID 1 e 2, repetiria o post, como pode se resolver isso?

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Se os dois query_posts estão no mesmo template, considere usar

    $query = new WP_Query ('posts_per_page=1&cat=2'); ao invés. query_posts é uma função para alterar o loop principal, não para criar loops secundários.

    usando WP_Query, você pode coletar os IDs usados no loop 1 e excluir estes IDs do loop 2, assim:

    1º loop:

    <?php
    $idA = array(); // crie um array para pegar os IDs que estão no 1º loop
    $queryA = new WP_Query(array(
        'posts_per_page' => 1,
        'cat' => 1));
    
        if ($queryA->have_posts()): while ($queryA->have_posts()) : $queryA->the_post();
    
        idA[] = $post->ID;
    ?>
          <a href="<?php the_permalink(); ?>">
            <?php the_title(); ?>
          </a>
    <?php endwhile; else:?>
    <?php endif;?>

    2º loop:

    <?php
    $queryB = new WP_Query(array(
        'posts_per_page' => 1,
        'cat' => 2,
        'post__not_in' => $idA));
    
        if ($queryB->have_posts()): while ($queryB->have_posts()) : $queryB->the_post();
    
    ?>
          <a href="<?php the_permalink(); ?>">
            <?php the_title(); ?>
          </a>
    <?php endwhile; else:?>
    <?php endif;?>

    Criador do tópico Enrico

    (@enricowebnet)

    Obrigado, resolvido!

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘Repetição QUERY_POSTS’ está fechado para novas respostas.