count_user_posts( int $userid, array|string $post_type = 'post', bool $public_only = false )
Number of posts user has written.
Description
Parameters
- $userid
-
(int) (Required) User ID.
- $post_type
-
(array|string) (Optional) Single post type or array of post types to count the number of posts for.
Default value: 'post'
- $public_only
-
(bool) (Optional) Whether to only return counts for public posts.
Default value: false
Return
(string) Number of posts the user has written in this post type.
Source
File: wp-includes/user.php
function count_user_posts( $userid, $post_type = 'post', $public_only = false ) { global $wpdb; $where = get_posts_by_author_sql( $post_type, true, $userid, $public_only ); $count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" ); /** * Filters the number of posts a user has written. * * @since 2.7.0 * @since 4.1.0 Added `$post_type` argument. * @since 4.3.1 Added `$public_only` argument. * * @param int $count The user's post count. * @param int $userid User ID. * @param string|array $post_type Single post type or array of post types to count the number of posts for. * @param bool $public_only Whether to limit counted posts to public posts. */ return apply_filters( 'get_usernumposts', $count, $userid, $post_type, $public_only ); }
Changelog
Version | Description |
---|---|
4.3.0 | Added $public_only argument. Added the ability to pass an array of post types to $post_type . |
4.1.0 | Added $post_type argument. |
3.0.0 | Introduced. |
Get post count for a user
Display the number of posts published by the user with an ID of 5.
Get post count for a user filtered by post type
Display the number of posts of post type “book” published by the user with an ID of 5.
Translation friendly post count
The same operation, with translation support.