diff --git a/wp-admin/includes/class-wp-plugin-install-list-table.php b/wp-admin/includes/class-wp-plugin-install-list-table.php index 1556ac53cc..3593426489 100644 --- a/wp-admin/includes/class-wp-plugin-install-list-table.php +++ b/wp-admin/includes/class-wp-plugin-install-list-table.php @@ -273,7 +273,9 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { return; } - if ( 'top' == $which ) { ?> + if ( 'top' == $which ) { + wp_referer_field(); + ?>
display(); + ?> +
+ display(); ?> +
+ get_pagenum(); + +if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) { + $location = remove_query_arg( '_wp_http_referer', wp_unslash( $_SERVER['REQUEST_URI'] ) ); + + if ( ! empty( $_REQUEST['paged'] ) ) { + $location = add_query_arg( 'paged', (int) $_REQUEST['paged'], $location ); + } + + wp_redirect( $location ); + exit; +} + $wp_list_table->prepare_items(); +$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' ); + +if ( $pagenum > $total_pages && $total_pages > 0 ) { + wp_redirect( add_query_arg( 'paged', $total_pages ) ); + exit; +} + $title = __( 'Add Plugins' ); $parent_file = 'plugins.php';