get_pending_comments_num
Get the number of pending comments on a post or posts.
Description
(int|array) get_pending_comments_num( (int|array) $post_id );
Returns (int|array)
Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs
Parameters (1)
- 0. $post_id (int|array)
- Either a single Post ID or an array of Post IDs
Usage
if ( !function_exists( 'get_pending_comments_num' ) ) { require_once ABSPATH . '/wp-admin/includes/comment.php'; } // Either a single Post ID or an array of Post IDs $post_id = null; // NOTICE! Understand what this does before running. $result = get_pending_comments_num($post_id);
Defined (1)
The function is defined in the following location(s).
- /wp-admin/includes/comment.php
- 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;
- }