You can place following code in your functions.php file & use the shortcode [myblogwriters min_posts="1"]
anywhere in the page/post content and can also change the min_posts value 🙂
function show_min_one_post_writers($atts){
global $wpdb;
$attrs = shortcode_atts( array(
'min_posts' => ''
), $atts );
$min_posts = $attrs['min_posts'];
$authors = $wpdb->get_col("SELECT `post_author` FROM
(SELECT `post_author`, COUNT(*) AS `count` FROM {$wpdb->posts}
WHERE `post_status`='publish' GROUP BY `post_author`) AS `stats`
WHERE `count` >= {$min_posts} ORDER BY `count` DESC;");
$my_blog_writers = "";
if ( empty ($authors) ) {
return "<p>No one has contirbuted any post yet!</p>";
} else {
foreach ($authors as $author_id) {
$my_writer = get_userdata($author_id);
$my_blog_writers .= "<p>".$my_writer->first_name ." ".$my_writer->last_name ." : ". $my_writer->user_email."</p>";
}
return $my_blog_writers;
}
}
add_shortcode( 'myblogwriters', 'show_min_one_post_writers' );