WordPress.org

Make WordPress Core

Ticket #15416: garyc40-15416.patch

File garyc40-15416.patch, 3.7 KB (added by garyc40, 5 years ago)
  • wp-admin/edit-comments.php

    Property changes on: .
    ___________________________________________________________________
    Added: svn:ignore
       + wp-config.php
    
    
    
    Property changes on: wp-content
    ___________________________________________________________________
    Added: svn:ignore
       + *
    
    
     
    1313 
    1414$wp_list_table = get_list_table('WP_Comments_List_Table'); 
    1515$wp_list_table->check_permissions(); 
     16$pagenum = $wp_list_table->get_pagenum(); 
    1617 
    1718$doaction = $wp_list_table->current_action(); 
    1819 
     
    3738        $approved = $unapproved = $spammed = $unspammed = $trashed = $untrashed = $deleted = 0; 
    3839        $redirect_to = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'spammed', 'unspammed', 'approved', 'unapproved', 'ids' ), wp_get_referer() ); 
    3940 
     41        // Fix the problem with wrong page number. This happens when the user use the javascript 
     42        // pagination feature to navigate to a certain page, then does some bulk actions there, 
     43        // he will be redirected back to te original page number instead of the navigated one. 
     44        $redirect_to = add_query_arg( 'paged', $pagenum, $redirect_to ); 
     45 
    4046        foreach ( $comment_ids as $comment_id ) { // Check the permissions on each 
    4147                if ( !current_user_can( 'edit_comment', $comment_id ) ) 
    4248                        continue; 
     
    99105 
    100106$wp_list_table->prepare_items(); 
    101107 
     108// redirect to the last page if the page number is larger than the total number of pages 
     109// this can happen when all the items in the last page are deleted, for example 
     110$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' ); 
     111if ( $pagenum > $total_pages && $total_pages > 0 ) { 
     112        wp_redirect( add_query_arg( 'paged', $total_pages ) ); 
     113        exit; 
     114} 
     115 
    102116wp_enqueue_script('admin-comments'); 
    103117enqueue_comment_hotkeys_js(); 
    104118 
  • wp-admin/edit.php

     
    1010require_once( './admin.php' );                   
    1111$wp_list_table = get_list_table('WP_Posts_List_Table'); 
    1212$wp_list_table->check_permissions(); 
     13$pagenum = $wp_list_table->get_pagenum(); 
    1314 
    1415// Back-compat for viewing comments of an entry 
    1516foreach ( array( 'p', 'attachment_id', 'page_id' ) as $_redirect ) { 
     
    2627if ( $doaction ) { 
    2728        check_admin_referer('bulk-posts'); 
    2829        $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() ); 
     30         
     31        // Fix the problem with wrong page number. This happens when the user use the javascript 
     32        // pagination feature to navigate to a certain page, then does some bulk actions there, 
     33        // he will be redirected back to te original page number instead of the navigated one. 
     34        $sendback = add_query_arg( 'paged', $pagenum, $sendback ); 
    2935 
    3036        if ( strpos($sendback, 'post.php') !== false ) 
    3137                $sendback = admin_url($post_new_file); 
     
    6066 
    6167                                $trashed++; 
    6268                        } 
    63                         $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids)), $sendback ); 
     69                        $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids) ), $sendback ); 
    6470                        break; 
    6571                case 'untrash': 
    6672                        $untrashed = 0; 
     
    127133 
    128134$wp_list_table->prepare_items(); 
    129135 
     136// redirect to the last page if the page number is larger than the total number of pages 
     137// this can happen when all the items in the last page are deleted, for example 
     138$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' ); 
     139if ( $pagenum > $total_pages && $total_pages > 0 ) { 
     140        wp_redirect( add_query_arg( 'paged', $total_pages ) ); 
     141        exit; 
     142} 
     143 
    130144wp_enqueue_script('inline-edit-post'); 
    131145 
    132146$title = $post_type_object->labels->name;