Make WordPress Core


Ignore:
Timestamp:
04/17/2009 12:46:53 PM (18 years ago)
Author:
azaozz
Message:

Submit the form when setting items per page option so it's visible straight away

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/misc.php

    r10826 r10987  
    319319}
    320320
    321 ?>
     321/**
     322 * Saves option for number of rows when listing posts, pages, comments, etc.
     323 *
     324 * @since 2.8
     325**/
     326function save_screen_options() {
     327
     328        if ( isset($_POST['wp_screen_options']) && is_array($_POST['wp_screen_options']) ) {
     329                check_admin_referer( 'screen-options-nonce', 'screenoptionnonce' );
     330
     331                if ( !$user = wp_get_current_user() )
     332                        return;
     333                $option = $_POST['wp_screen_options']['option'];
     334                $value = $_POST['wp_screen_options']['value'];
     335
     336                if ( !preg_match( '/^[a-z_-]+$/', $option ) )
     337                        return;
     338
     339                $option = str_replace('-', '_', $option);
     340
     341                switch ( $option ) {
     342                        case 'edit_per_page':
     343                        case 'edit_pages_per_page':
     344                        case 'edit_comments_per_page':
     345                        case 'upload_per_page':
     346                        case 'categories_per_page':
     347                        case 'edit_tags_per_page':
     348                                $value = (int) $value;
     349                                if ( $value < 1 || $value > 999 )
     350                                        return;
     351                                break;
     352                        default:
     353                                $value = apply_filters('set-screen-option', false, $option, $value);
     354                                if ( false === $value )
     355                                        return;
     356                                break;
     357                }
     358
     359                update_usermeta($user->ID, $option, $value);
     360                wp_redirect( remove_query_arg( array('pagenum', 'apage', 'paged'), wp_get_referer() ) );
     361                exit;
     362        }
     363}
Note: See TracChangeset for help on using the changeset viewer.