you can use the author
parameter of WP_Query
here is a simple function to get you going with a hook to a shortcode and another hook to render this shortcode inside a simple text widget:
function ten_latest_of_contributers($atts = null){
global $post;
//store the current post data
$temp = $post;
$contributors = get_users(array('role'=> 'contributor'));
//then create an array of contributors ids
$contributors_ids = array();
foreach ($contributors as $user) {
$contributors_ids[] = $user->ID;
}
//then create a new query and use the author parameter
$con_query = new WP_Query(array(
'author' => implode( ',', $contributors_ids ),
'post_type' => 'post',
'posts_per_page' => 10));
//all that is left is to loop
$re="<ul>";
while($con_query->have_posts()){
$con_query->the_post();
$re .= '<li><a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a></li>';
}
$re .= '</ul>';
//reset the current post data
wp_reset_postdata();
$post = $temp;
//return the list
return $re;
}
// hook your shortcode
add_shortcode('ten_latest_con','ten_latest_of_contributers');
//render shortcodes in widgets
add_filter('widget_text', 'do_shortcode');
Paste this code in your theme’s functions.php and then just enter [ten_latest_con]
inside a text widget.