From 197f0a30a439a2c2ff96d7433ba1e89dbf375c76 Mon Sep 17 00:00:00 2001 From: Dominik Schilling Date: Fri, 3 Oct 2014 13:08:16 +0000 Subject: [PATCH] Plugin search: Wrap results in a form to fix pagination's `paged` input field. props jesin, ocean90. see #18724, for trunk. Built from https://develop.svn.wordpress.org/trunk@29829 git-svn-id: http://core.svn.wordpress.org/trunk@29594 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../class-wp-plugin-install-list-table.php | 4 +++- wp-admin/includes/plugin-install.php | 11 ++++++++--- wp-admin/plugin-install.php | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) 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';