Первое сообщение каждой категории

Я пытаюсь создать простой цикл, который получает последнее сообщение из 3 выбранных категорий. Я искал что-то похожее, чтобы учиться, но большинство из них слишком сложны.

На данный момент у меня есть:

<?php // WP_Query arguments $args = array ( 'category_name' => array('lifestyle', 'fashion', 'beauty') ); // The Query $query = new WP_Query( $args[0] ); // The Loop if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); // do something } } else { // no posts found } // Restore original Post Data wp_reset_postdata(); ?> 

Я предполагаю, что мне нужен цикл foreach , но я не уверен, как его реализовать в этом сценарии, и для самого последнего из каждого сообщения?

Любая помощь будет большой.

Solutions Collecting From Web of "Первое сообщение каждой категории"

Невозможно получить по одной должности в каждой категории с одним простым запросом, и даже сложный запрос займет больше времени, чем 3 отдельных запроса. Итак, если вы хотите простейших, то это решение –

 $cats = array('lifestyle', 'fashion', 'beauty'); $exclude_posts = array(); foreach( $cats as $cat ) { // build query argument $query_args = array( 'category_name' => $cat, 'showposts' => 1, 'post_type' => 'post', 'post_status' => 'publish', 'orderby' => 'date', 'order' => 'DESC' ); // exclude post that already have been fetched // this would be useful if multiple category is assigned for same post if( !empty($exclude_posts) ) $query_args['post__not_in'] = $exclude_posts; // do query $query = new WP_Query( $query_args ); // check if query have any post if ( $query->have_posts() ) { // start loop while ( $query->have_posts() ) { // set post global $query->the_post(); // add current post id to exclusion array $exclude_posts[] = get_the_ID(); // do something } } else { // no posts found } // Restore original Post Data wp_reset_postdata(); }