count_user_posts
Number of posts user has written.
Description
(string) count_user_posts( (int) $userid, (string) $post_type = 'post', (bool) $public_only = false );
Returns (string)
Number of posts the user has written in this post type.
Parameters (3)
- 0. $userid (int)
- The userid.
- 1. $post_type — Optional. (string) =>
'post'
- Single post type or array of post types to count the number of posts for. Default post..
- 2. $public_only — Optional. (bool) =>
false
- Whether to only return counts for public posts. Default false.
Usage
if ( !function_exists( 'count_user_posts' ) ) { require_once ABSPATH . WPINC . '/user.php'; } // The userid. $userid = -1; // Optional. Single post type or array of post types to count the number of posts for. Default 'post'. $post_type = 'post'; // Optional. Whether to only return counts for public posts. Default false. $public_only = false; // NOTICE! Understand what this does before running. $result = count_user_posts($userid, $post_type, $public_only);
Defined (1)
The function is defined in the following location(s).
- /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 );
- }