From f7a4e22bdbb01ce8d53cdb70f1dfa5a00046146d Mon Sep 17 00:00:00 2001 From: "Dominik Schilling (ocean90)" Date: Fri, 3 Oct 2014 13:07:18 +0000 Subject: [PATCH] Plugin search: Wrap results in a form to fix pagination's `paged` input field. props jesin, ocean90. see #18724, for trunk. git-svn-id: https://develop.svn.wordpress.org/trunk@29829 602fd350-edb4-49c9-b593-d223f7449a82 --- .../class-wp-plugin-install-list-table.php | 4 +++- src/wp-admin/includes/plugin-install.php | 11 ++++++++--- src/wp-admin/plugin-install.php | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/wp-admin/includes/class-wp-plugin-install-list-table.php b/src/wp-admin/includes/class-wp-plugin-install-list-table.php index 1556ac53cc..3593426489 100644 --- a/src/wp-admin/includes/class-wp-plugin-install-list-table.php +++ b/src/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';