You could do one query for the 4 latest posts excluding the
schaft category, then do another query for the latest post in
schaft. get the date of the single
schaft post and check it against the dates of the other posts as you output them, inserting it in the correct position.
Two loop example:
$category = 1; // category to exclude from 1st / use for 2nd query $first_args = array( 'posts_per_page' => 4, 'category__not_in' => $category ); $second_args = array( 'posts_per_page' => 1, 'cat' => $category ); $first_query = new WP_Query( $first_args ); $second_query = new WP_Query( $second_args ); $previous_date=""; while( $first_query->have_posts() ): $first_query->the_post(); // insert post from 2nd query if its post date is greater than this post date // but less than the previous, or the previous is empty because it's the first if( $second_query->post->post_date > $post->post_date && ( $second_query->post->post_date < $previous_date || $previous_date="" ) ): $second_query->the_post(); // output post from second query the_title(); // reset post global $post = $first_query->post; endif; // output post from first query the_title(); $previous_date = $post->post_date; endwhile;