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