Primeira postagem de cada categoria

Estou tentando criar um loop simples, que recebe a última postagem de 3 categorias selecionadas. Procurei por algo semelhante a aprender, mas a maioria é excessivamente complexa.

No momento, eu tenho:

 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(); ?> 

Eu suponho que eu precisaria de um loop foreach , mas não tenho certeza de como implementá-lo neste cenário, e apenas para o último de cada post?

Qualquer ajuda seria ótimo.

Solutions Collecting From Web of "Primeira postagem de cada categoria"

Não é possível obter uma postagem por categoria com uma consulta simples, e mesmo uma consulta complexa levará mais tempo do que 3 consultas separadas. Então, se você quer mais simples, então esta é a solução –

 $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(); }