From c74d9e6d1cb8cc0e6956f1c6ffd3d3682fc89638 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Thu, 19 Mar 2015 02:25:05 +0000 Subject: [PATCH] Add `WP_Posts_List_Table::is_base_request()` to determine if the current "view" is the "All" (default) view. Fixes #24869. git-svn-id: https://develop.svn.wordpress.org/trunk@31828 602fd350-edb4-49c9-b593-d223f7449a82 --- .../includes/class-wp-posts-list-table.php | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/wp-admin/includes/class-wp-posts-list-table.php b/src/wp-admin/includes/class-wp-posts-list-table.php index 022d0293ff..84a163ed4f 100644 --- a/src/wp-admin/includes/class-wp-posts-list-table.php +++ b/src/wp-admin/includes/class-wp-posts-list-table.php @@ -148,6 +148,21 @@ class WP_Posts_List_Table extends WP_List_Table { echo get_post_type_object( $this->screen->post_type )->labels->not_found; } + /** + * Determine if the current view is the "All" view + * + * @since 4.2.0 + * + * @return boolean + */ + protected function is_base_request() { + if ( empty( $_GET ) ) { + return true; + } elseif ( 1 === count( $_GET ) && ! empty( $_GET['post_type'] ) ) { + return $this->screen->post_type === $_GET['post_type']; + } + } + protected function get_views() { global $locked_post_status, $avail_post_stati; @@ -176,8 +191,21 @@ class WP_Posts_List_Table extends WP_List_Table { foreach ( get_post_stati( array('show_in_admin_all_list' => false) ) as $state ) $total_posts -= $num_posts->$state; - $class = empty( $class ) && empty( $_REQUEST['post_status'] ) && empty( $_REQUEST['show_sticky'] ) ? ' class="current"' : ''; - $status_links['all'] = "" . sprintf( _nx( 'All (%s)', 'All (%s)', $total_posts, 'posts' ), number_format_i18n( $total_posts ) ) . ''; + if ( empty( $class ) && $this->is_base_request() ) { + $class = ' class="current"'; + } + + $all_inner_html = sprintf( + _nx( + 'All (%s)', + 'All (%s)', + $total_posts, + 'posts' + ), + number_format_i18n( $total_posts ) + ); + + $status_links['all'] = "" . $all_inner_html . ''; foreach ( get_post_stati(array('show_in_admin_status_list' => true), 'objects') as $status ) { $class = '';