Function and usage of count_many_users_posts() in wordpress


Answers ( 1 )


    The count_many_users_posts() function in WordPress is used to obtain the number of posts authored by a specified list of users. Here's a detailed explanation of its function and usage:


    • Purpose: To retrieve the number of posts written by each user in a provided list of users.
    • Usage: This function is particularly useful for administrators or developers who need to generate reports or statistics about user contributions on a WordPress site.


    1. $users (int[]) [required]:

      • Description: An array of user IDs.
      • Purpose: Specifies which users' post counts you want to retrieve.
    2. $post_type (string|string[]) [optional]:

      • Default: 'post'
      • Description: Can be a single post type as a string, or an array of post types.
      • Purpose: Allows you to specify the type(s) of posts to count. For example, you might only want to count 'blog' posts, 'news' articles, etc.
    3. $public_only (bool) [optional]:

      • Default: false
      • Description: When set to true, the function only returns counts for posts that are publicly accessible.
      • Purpose: Useful if you only want to count posts that are visible to the public, excluding private or draft posts.


    • Type: string[]
    • Description: An associative array where each key is a user ID and the value is the number of posts written by that user. The counts are returned as strings.

    Sample Usage:

    Here's a simple example of how you might use count_many_users_posts():

    // Array of user IDs to check
    $user_ids = [1, 2, 3];
    // Optional: Specify post types (e.g., 'post', 'page', 'custom_post_type')
    $post_types = ['post', 'page'];
    // Optional: Set to true if only public posts should be counted
    $public_only = true;
    // Get post counts
    $post_counts = count_many_users_posts($user_ids, $post_types, $public_only);
    // Print results
    foreach ($post_counts as $user_id => $count) {
        echo "User ID $user_id has written $count posts.\n";

    In this example, the function counts how many posts and pages each user in $user_ids has authored, but only if those posts are public. The results are then printed, showing the number of posts for each user ID.

Leave an answer