I use the following code to count user posts by specific post type:
function count_user_posts_by_type( $userid, $post_type ) {
global $wpdb;
$where = get_posts_by_author_sql( $post_type, TRUE, $userid );
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
return apply_filters( 'get_usernumposts', $count, $userid );
}
// Echo Count
echo count_user_posts_by_type( $user_ID, 'reports' );
Looking for an elegant solution to limit posts by dates. For example, last weekmonth posts.
The elegant way to get posts out of the database is to use wp_query. It has all the filters you need:
It’s also possible to return ranges of dates, depending on your needs. Read the documentation on
wp_query
for that.