diff --git a/wp-admin/edit.php b/wp-admin/edit.php index 2c267ec7fc..da5c5d71d6 100644 --- a/wp-admin/edit.php +++ b/wp-admin/edit.php @@ -8,6 +8,21 @@ /** WordPress Administration Bootstrap */ require_once( './admin.php' ); + +if ( !isset($_GET['post_type']) ) + $post_type = 'post'; +elseif ( in_array( $_GET['post_type'], get_post_types( array('show_ui' => true ) ) ) ) + $post_type = $_GET['post_type']; +else + wp_die( __('Invalid post type') ); + +$_GET['post_type'] = $post_type; + +$post_type_object = get_post_type_object( $post_type ); + +if ( !current_user_can($post_type_object->cap->edit_posts) ) + wp_die(__('Cheatin’ uh?')); + $wp_list_table = get_list_table('WP_Posts_List_Table'); $wp_list_table->check_permissions(); $pagenum = $wp_list_table->get_pagenum(); diff --git a/wp-admin/includes/class-wp-posts-list-table.php b/wp-admin/includes/class-wp-posts-list-table.php index eebaa8522d..4faf36e3eb 100644 --- a/wp-admin/includes/class-wp-posts-list-table.php +++ b/wp-admin/includes/class-wp-posts-list-table.php @@ -47,14 +47,6 @@ class WP_Posts_List_Table extends WP_List_Table { function WP_Posts_List_Table() { global $post_type_object, $post_type, $wpdb; - if ( !isset( $_REQUEST['post_type'] ) ) - $post_type = 'post'; - elseif ( in_array( $_REQUEST['post_type'], get_post_types( array( 'show_ui' => true ) ) ) ) - $post_type = $_REQUEST['post_type']; - else - wp_die( __( 'Invalid post type' ) ); - $_REQUEST['post_type'] = $post_type; - $post_type_object = get_post_type_object( $post_type ); if ( !current_user_can( $post_type_object->cap->edit_others_posts ) ) {