get_posts с несколькими категориями
Как описано в кодексе, вы можете использовать следующий код:
$query = new WP_Query( array( 'category__and' => array( 2, 6 ) ) );
//запись должна находиться в категориях с ID 2 И 6 одновременно

Кодекс говорит:
Примечание: Параметр category должен содержать ID категории, а не её название.
Примечание: Параметр category может содержать список категорий, разделённых запятыми, так как функция
get_posts()
передаёт параметр 'category' напрямую вWP_Query
как'cat'
.
Таким образом, это аналогично параметру категории в WP_Query()
- cat
.

Вы можете использовать класс WP_QUERY для поиска записей в определенных категориях, вот пример:
$query = new WP_Query( 'cat=2,6,17,38' );
Вот ссылка на документацию, где объясняется, как использовать результаты для создания цикла и отображения записей в результатах.

Существует гораздо более простой способ, который использует функцию 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();?>

Если вы хотите использовать параметр category_name для поиска, вы можете использовать WP_Query( array("category_name" => "cat_1+cat_2+...+cat_n") )
, где cat_1, cat_2, ... , cat_n
— это все категории, которые должны быть у записи, чтобы она была возвращена в результате запроса.
Документация: Кодекс WordPress
