get_posts com várias categorias

2

Se eu fizer um get_posts () com a categoria definida como 1,2, receberei todas as postagens na categoria 1 OU 2. Se eu quiser todas as postagens com as duas categorias, ou seja 1 e 2, como faço essa solicitação?

    
por gubbfett 21.04.2015 / 16:35

6 respostas

4

Conforme documentado no códice , você pode usar o seguinte

$query = new WP_Query( array( 'category__and' => array( 2, 6 ) ) ); // post tem que estar na categoria com ID 2 AND 6

    
por pbaldauf 21.04.2015 / 19:42
2

O Codex diz:

  

Observação: o parâmetro category precisa ser o ID da categoria e não o nome da categoria.

     

Observação: o parâmetro category pode ser uma lista de categorias separadas por vírgulas, pois a função get_posts() passa o parâmetro 'category' diretamente para WP_Query as 'cat' .

Portanto, seria o mesmo parâmetro de categoria - WP_Query() do cat .

    
por Mayeenul Islam 21.04.2015 / 16:41
2

Você pode usar a classe WP_QUERY para pesquisar as postagens em algumas categorias específicas, aqui está um exemplo:

$query = new WP_Query( 'cat=2,6,17,38' );

Aqui está um link para a documentação onde eles explicam como usar os resultados para criar um loop e exibir as postagens nos resultados.

    
por Ramy Deeb 21.04.2015 / 16:42
0

Na verdade, você pode usar category__and com get_posts() diretamente:

$posts = get_posts(array( 'category__and' => array(1,2) ));
    
por AymKdn 23.10.2016 / 18:56
0

Existe uma maneira muito mais fácil que envolve apenas a função get_posts() .

<?php $args1 = array( 'posts_per_page' => 6, 'offset'=> 0, 'category' => array(2,3,25,30));
            $myposts1 = get_posts( $args1 );
            foreach ( $myposts1 as $post ) : setup_postdata( $post ); ?>
            <div class="each-post col-lg-aynk col-md-aynk col-sm-aynk col-xs-aynk">
                <a href="<?php the_permalink(); ?>">
                    <h2><?php the_title(); ?></h2>
                </a>
                <a href="<?php the_permalink(); ?>">
                    <div class="news-story-img">
                        <?php if (class_exists('MultiPostThumbnails')) : MultiPostThumbnails::the_post_thumbnail(get_post_type(), 'secondary-image'); endif; ?>
                        <?php the_post_thumbnail( get_permalink() ); ?>
                    </div>
                </a>

            </div>

            <?php endforeach; 
            wp_reset_postdata();?>
    
por Asem J Syed 13.03.2016 / 23:12
0

Se você quiser usar category_name como parâmetro de pesquisa, use WP_Query( array("category_name" => "cat_1+cat_2+...+cat_n") ) , onde cat_1, cat_2, ... , cat_n são all as categorias que a postagem deve ter para ser retornada da consulta

Documentação aqui Codex Wordpress

    
por Andrea Tulimiero 21.07.2017 / 15:28