web-dev-qa-db-fra.com

get_posts avec plusieurs catégories

Si je fais un get_posts () avec la catégorie définie sur 1,2, j'obtiendrai tous les messages de la catégorie 1 OR 2. Si je veux tous les messages avec les deux catégories, c'est-à-dire 1 AND 2, comment puis-je créer cette demande?

2
gubbfett

Comme indiqué dans le codex , vous pouvez utiliser ce qui suit

$query = new WP_Query( array( 'category__and' => array( 2, 6 ) ) ); // post doit appartenir à la catégorie identifiant 2 et 6

5
pbaldauf

Le Codex dit:

Remarque: Le paramètre category doit correspondre à l'ID de la catégorie et non au nom de la catégorie.

Remarque: Le paramètre category peut être une liste de catégories séparées par des virgules, car la fonction get_posts() passe le paramètre 'category' directement dans WP_Query en tant que 'cat'.

Donc, ce serait identique à WP_Query() 's Paramètre de catégorie - cat .

2
Mayeenul Islam

Vous pouvez utiliser la classe WP_QUERY pour rechercher les articles dans certaines catégories. En voici un exemple:

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

Voici un lien link vers la documentation où ils expliquent comment utiliser les résultats pour créer une boucle et afficher les publications dans les résultats.

2
Ramy Deeb

Il existe un moyen beaucoup plus simple qui implique simplement la fonction 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();?>
0
Asem J Syed

En fait, vous pouvez utiliser category__and avec get_posts() directement:

$posts = get_posts(array( 'category__and' => array(1,2) ));
0
AymKdn

Si vous souhaitez utiliser nom_catégorie comme paramètre de recherche, vous pouvez utiliser WP_Query( array("category_name" => "cat_1+cat_2+...+cat_n") ), où cat_1, cat_2, ... , cat_n sont all les catégories que la publication doit renvoyer de la requête

Documentation ici Codex Wordpress

0
Andrea Tulimiero