From 4d33644373dbbfa6bea0e664f48c24862fe83a3e Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Mon, 14 Sep 2015 19:25:25 +0000 Subject: [PATCH] In `WP_Media_List_Table`, fetch all pending comment counts at once, instead of for each row in the loop. See #11381. Built from https://develop.svn.wordpress.org/trunk@34127 git-svn-id: http://core.svn.wordpress.org/trunk@34095 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../includes/class-wp-media-list-table.php | 24 ++++++++++++++++--- wp-includes/version.php | 2 +- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/wp-admin/includes/class-wp-media-list-table.php b/wp-admin/includes/class-wp-media-list-table.php index d4c77b57ef..ef84bd75f7 100644 --- a/wp-admin/includes/class-wp-media-list-table.php +++ b/wp-admin/includes/class-wp-media-list-table.php @@ -8,6 +8,14 @@ * @access private */ class WP_Media_List_Table extends WP_List_Table { + /** + * Store the pending comment count for each post + * + * @access public + * @since 4.4.0 + * @var array + */ + public $pending_count = array(); private $detached; @@ -149,7 +157,7 @@ class WP_Media_List_Table extends WP_List_Table { /** This action is documented in wp-admin/includes/class-wp-posts-list-table.php */ do_action( 'restrict_manage_posts', $this->screen->post_type ); - + submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); } @@ -481,7 +489,12 @@ class WP_Media_List_Table extends WP_List_Table { public function column_comments( $post ) { echo '
'; - $pending_comments = get_pending_comments_num( $post->ID ); + if ( isset( $this->pending_count[ $post->ID ] ) ) { + $pending_comments = $this->pending_count[ $post->ID ]; + } else { + $pending_comments = get_pending_comments_num( $post->ID ); + } + $this->comments_bubble( $post->ID, $pending_comments ); echo '
'; @@ -548,7 +561,12 @@ class WP_Media_List_Table extends WP_List_Table { * @global WP_Post $post */ public function display_rows() { - global $post; + global $post, $wp_query; + + $post_ids = wp_list_pluck( $wp_query->posts, 'ID' ); + reset( $wp_query->posts ); + + $this->pending_count = get_pending_comments_num( $post_ids ); add_filter( 'the_title','esc_html' ); diff --git a/wp-includes/version.php b/wp-includes/version.php index adaa8db488..a3adf7dc28 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.4-alpha-34126'; +$wp_version = '4.4-alpha-34127'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.