WordPress at a glance

count_user_posts() WP 1.0

Number of posts user has written.

  • Global. wpdb. $wpdb WordPress database abstraction object.
  • Since 4.1.0 Added $post_type argument.
  • Since 4.3.0 Added $public_only argument. Added the ability to pass an array of post types to $post_type.
✈ 1 time = 0.001945s = very slow | 50000 times = 46.58s = very slow PHP 7.1.2, WP 4.7.3
Hooks from function:
Return

String. Number of posts the user has written in this post type.

Usage

count_user_posts( $userid, $post_type, $public_only );
$userid(int) (required)
User ID.
$post_type(array/string)
Single post type or array of post types to count the number of posts for.
Default: 'post'
$public_only(true/false)
Whether to only return counts for public posts.
Default: false

Code of count_user_posts: wp-includes/user.php VER 4.9.8

<?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 );
}

Related Functions

From category: Other

No comments
    Hello, !     Log In . Register