get_pending_comments_num

The timeline below displays how wordpress function get_pending_comments_num has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Gets the number of pending comments on a post or posts.
 *
 * @since 2.3.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|int[] $post_id Either a single Post ID or an array of Post IDs
 * @return int|int[] Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs
 */
function get_pending_comments_num($post_id)
{
    global $wpdb;
    $single = false;
    if (!is_array($post_id)) {
        $post_id_array = (array) $post_id;
        $single = true;
    } else {
        $post_id_array = $post_id;
    }
    $post_id_array = array_map('intval', $post_id_array);
    $post_id_in = "'" . implode("', '", $post_id_array) . "'";
    $pending = $wpdb->get_results("SELECT comment_post_ID, COUNT(comment_ID) as num_comments FROM {$wpdb->comments} WHERE comment_post_ID IN ( {$post_id_in} ) AND comment_approved = '0' GROUP BY comment_post_ID", ARRAY_A);
    if ($single) {
        if (empty($pending)) {
            return 0;
        } else {
            return absint($pending[0]['num_comments']);
        }
    }
    $pending_keyed = array();
    // Default to zero pending for all posts in request.
    foreach ($post_id_array as $id) {
        $pending_keyed[$id] = 0;
    }
    if (!empty($pending)) {
        foreach ($pending as $pend) {
            $pending_keyed[$pend['comment_post_ID']] = absint($pend['num_comments']);
        }
    }
    return $pending_keyed;
}

WordPress Version: 5.6

/**
 * Get the number of pending comments on a post or posts
 *
 * @since 2.3.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|int[] $post_id Either a single Post ID or an array of Post IDs
 * @return int|int[] Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs
 */
function get_pending_comments_num($post_id)
{
    global $wpdb;
    $single = false;
    if (!is_array($post_id)) {
        $post_id_array = (array) $post_id;
        $single = true;
    } else {
        $post_id_array = $post_id;
    }
    $post_id_array = array_map('intval', $post_id_array);
    $post_id_in = "'" . implode("', '", $post_id_array) . "'";
    $pending = $wpdb->get_results("SELECT comment_post_ID, COUNT(comment_ID) as num_comments FROM {$wpdb->comments} WHERE comment_post_ID IN ( {$post_id_in} ) AND comment_approved = '0' GROUP BY comment_post_ID", ARRAY_A);
    if ($single) {
        if (empty($pending)) {
            return 0;
        } else {
            return absint($pending[0]['num_comments']);
        }
    }
    $pending_keyed = array();
    // Default to zero pending for all posts in request.
    foreach ($post_id_array as $id) {
        $pending_keyed[$id] = 0;
    }
    if (!empty($pending)) {
        foreach ($pending as $pend) {
            $pending_keyed[$pend['comment_post_ID']] = absint($pend['num_comments']);
        }
    }
    return $pending_keyed;
}

WordPress Version: 5.4

/**
 * Get the number of pending comments on a post or posts
 *
 * @since 2.3.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|array $post_id Either a single Post ID or an array of Post IDs
 * @return int|array Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs
 */
function get_pending_comments_num($post_id)
{
    global $wpdb;
    $single = false;
    if (!is_array($post_id)) {
        $post_id_array = (array) $post_id;
        $single = true;
    } else {
        $post_id_array = $post_id;
    }
    $post_id_array = array_map('intval', $post_id_array);
    $post_id_in = "'" . implode("', '", $post_id_array) . "'";
    $pending = $wpdb->get_results("SELECT comment_post_ID, COUNT(comment_ID) as num_comments FROM {$wpdb->comments} WHERE comment_post_ID IN ( {$post_id_in} ) AND comment_approved = '0' GROUP BY comment_post_ID", ARRAY_A);
    if ($single) {
        if (empty($pending)) {
            return 0;
        } else {
            return absint($pending[0]['num_comments']);
        }
    }
    $pending_keyed = array();
    // Default to zero pending for all posts in request.
    foreach ($post_id_array as $id) {
        $pending_keyed[$id] = 0;
    }
    if (!empty($pending)) {
        foreach ($pending as $pend) {
            $pending_keyed[$pend['comment_post_ID']] = absint($pend['num_comments']);
        }
    }
    return $pending_keyed;
}

WordPress Version: 4.1

/**
 * Get the number of pending comments on a post or posts
 *
 * @since 2.3.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|array $post_id Either a single Post ID or an array of Post IDs
 * @return int|array Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs
 */
function get_pending_comments_num($post_id)
{
    global $wpdb;
    $single = false;
    if (!is_array($post_id)) {
        $post_id_array = (array) $post_id;
        $single = true;
    } else {
        $post_id_array = $post_id;
    }
    $post_id_array = array_map('intval', $post_id_array);
    $post_id_in = "'" . implode("', '", $post_id_array) . "'";
    $pending = $wpdb->get_results("SELECT comment_post_ID, COUNT(comment_ID) as num_comments FROM {$wpdb->comments} WHERE comment_post_ID IN ( {$post_id_in} ) AND comment_approved = '0' GROUP BY comment_post_ID", ARRAY_A);
    if ($single) {
        if (empty($pending)) {
            return 0;
        } else {
            return absint($pending[0]['num_comments']);
        }
    }
    $pending_keyed = array();
    // Default to zero pending for all posts in request
    foreach ($post_id_array as $id) {
        $pending_keyed[$id] = 0;
    }
    if (!empty($pending)) {
        foreach ($pending as $pend) {
            $pending_keyed[$pend['comment_post_ID']] = absint($pend['num_comments']);
        }
    }
    return $pending_keyed;
}

WordPress Version: 3.7

/**
 * Get the number of pending comments on a post or posts
 *
 * @since 2.3.0
 * @uses $wpdb
 *
 * @param int|array $post_id Either a single Post ID or an array of Post IDs
 * @return int|array Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs
 */
function get_pending_comments_num($post_id)
{
    global $wpdb;
    $single = false;
    if (!is_array($post_id)) {
        $post_id_array = (array) $post_id;
        $single = true;
    } else {
        $post_id_array = $post_id;
    }
    $post_id_array = array_map('intval', $post_id_array);
    $post_id_in = "'" . implode("', '", $post_id_array) . "'";
    $pending = $wpdb->get_results("SELECT comment_post_ID, COUNT(comment_ID) as num_comments FROM {$wpdb->comments} WHERE comment_post_ID IN ( {$post_id_in} ) AND comment_approved = '0' GROUP BY comment_post_ID", ARRAY_A);
    if ($single) {
        if (empty($pending)) {
            return 0;
        } else {
            return absint($pending[0]['num_comments']);
        }
    }
    $pending_keyed = array();
    // Default to zero pending for all posts in request
    foreach ($post_id_array as $id) {
        $pending_keyed[$id] = 0;
    }
    if (!empty($pending)) {
        foreach ($pending as $pend) {
            $pending_keyed[$pend['comment_post_ID']] = absint($pend['num_comments']);
        }
    }
    return $pending_keyed;
}