get_posts cu categorii multiple
După cum este documentat în codex, poți folosi următorul cod:
$query = new WP_Query( array( 'category__and' => array( 2, 6 ) ) );
// postul trebuie să fie în categoria cu ID-ul 2 ȘI 6

Codex spune:
Notă: Parametrul categorie trebuie să fie ID-ul categoriei, nu numele categoriei.
Notă: Parametrul categorie poate fi o listă de categorii separate prin virgulă, deoarece funcția
get_posts()
transmite parametrul 'category' direct înWP_Query
ca'cat'
.
Deci va fi la fel ca Parametrul Categorie - cat
din WP_Query()
.

Puteți folosi clasa WP_QUERY pentru a căuta postări în anumite categorii specifice, iată un exemplu:
$query = new WP_Query( 'cat=2,6,17,38' );
Aici este un link către documentație unde este explicat cum să folosiți rezultatele pentru a construi o buclă și afișa postările din rezultate.

Există o metodă mult mai ușoară care implică doar funcția 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();?>

Dacă dorești să folosești parametrul category_name pentru căutare, poți utiliza WP_Query( array("category_name" => "cat_1+cat_2+...+cat_n") )
, unde cat_1, cat_2, ... , cat_n
reprezintă toate categoriile pe care articolul trebuie să le aibă pentru a fi returnat de interogare.
Documentația aici: Codex Wordpress
