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?
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
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 dansWP_Query
en tant que'cat'
.
Donc, ce serait identique à WP_Query()
's Paramètre de catégorie - cat
.
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.
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();?>
En fait, vous pouvez utiliser category__and
avec get_posts()
directement:
$posts = get_posts(array( 'category__and' => array(1,2) ));
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