// Query user data on admins
$administrators = new WP_User_Query( array( 'role' => 'administrator' ) );
// Query user data on contributors
$contributors = new WP_User_Query( array( 'role' => 'contributor' ) );
// Save admin IDs
foreach( $administrators->results as $u )
$user_ids[] = $u->ID;
// Save contributor IDs
foreach( $contributors->results as $u )
$user_ids[] = $u->ID;
// Little cleanup
unset( $u, $administrators, $contributors );
// Save paged value (for paginating results)
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
// query_posts()
query_posts(
array(
'post_type' => 'post',
'author__in' => $user_ids,
'paged' => $paged
)
);
// If the query has data
if( have_posts() ) :
// Post loop
while ( have_posts() ) :
// Setup post data
the_post();
?>
<!-- Do HTML markup and template tags here, eg. the_content(), the_title() etc.. -->
<h1><?php the_title(); ?></h1>
<?php
endwhile;
// End "If the query has data"
endif;
@1fixdotio : WP_User_Query
returns an object of each user. WP_Query
takes user ids only so we have to extract the ids from the user objects. I think that is the only mistake there.