diff --git a/wp-admin/includes/class-wp-comments-list-table.php b/wp-admin/includes/class-wp-comments-list-table.php index 5f0d373547..b76ad9162a 100644 --- a/wp-admin/includes/class-wp-comments-list-table.php +++ b/wp-admin/includes/class-wp-comments-list-table.php @@ -387,43 +387,24 @@ class WP_Comments_List_Table extends WP_List_Table { if ( ! isset( $has_items ) ) { $has_items = $this->has_items(); } - ?> -
- '; if ( 'top' === $which ) { - ?> - - - comment_status_dropdown( $comment_type ); /** * Fires just before the Filter submit button for comment types. * * @since 3.5.0 */ do_action( 'restrict_manage_comments' ); - submit_button( __( 'Filter' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); + + $output = ob_get_clean(); + + if ( ! empty( $output ) && $this->has_items() ) { + echo $output; + submit_button( esc_html__( 'Filter' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); + } } if ( ( 'spam' === $comment_status || 'trash' === $comment_status ) && current_user_can( 'moderate_comments' ) && $has_items ) { @@ -480,6 +461,55 @@ class WP_Comments_List_Table extends WP_List_Table { return $columns; } + /** + * Displays a comment status drop-down for filtering on the Comments list table. + * + * @since 5.5.0 + * + * @param string $comment_type The current comment type slug. + */ + protected function comment_status_dropdown( $comment_type ) { + /** + * Filters the comment types dropdown menu. + * + * @since 2.7.0 + * + * @param array $comment_types An array of comment types. Accepts 'Comments', 'Pings'. + */ + $comment_types = apply_filters( + 'admin_comment_types_dropdown', + array( + 'comment' => esc_html__( 'Comments' ), + 'pings' => esc_html__( 'Pings' ), + ) + ); + + if ( $comment_types && is_array( $comment_types ) ) { + printf( '', esc_html__( 'Filter by comment type' ) ); + + echo ''; + } + } + /** * @return array */ @@ -511,8 +541,14 @@ class WP_Comments_List_Table extends WP_List_Table { */ public function display() { wp_nonce_field( 'fetch-list-' . get_class( $this ), '_ajax_fetch_list_nonce' ); + static $has_items; - $this->display_tablenav( 'top' ); + if ( ! isset( $has_items ) ) { + $has_items = $this->has_items(); + if ( $has_items ) { + $this->display_tablenav( 'top' ); + } + } $this->screen->render_screen_reader_content( 'heading_list' ); diff --git a/wp-includes/version.php b/wp-includes/version.php index 26421ac0dc..31be2fa65c 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.5-beta2-48520'; +$wp_version = '5.5-beta2-48521'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.