diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index 7317816736..4fb15fbdba 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -988,10 +988,12 @@ case 'autosave' : // The name of this action is hardcoded in edit_post() break; case 'closed-postboxes' : check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' ); - $closed = isset( $_POST['closed'] ) ? $_POST['closed'] : ''; - $closed = explode( ',', $_POST['closed'] ); - $hidden = isset( $_POST['hidden'] ) ? $_POST['hidden'] : ''; - $hidden = explode( ',', $_POST['hidden'] ); + $closed = isset( $_POST['closed'] ) ? explode( ',', $_POST['closed']) : array(); + $closed = array_filter($closed); + + $hidden = isset( $_POST['hidden'] ) ? explode( ',', $_POST['hidden']) : array(); + $hidden = array_filter($hidden); + $page = isset( $_POST['page'] ) ? $_POST['page'] : ''; if ( !preg_match( '/^[a-z_-]+$/', $page ) ) diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php index 97d21a2a00..d8dfb600d3 100644 --- a/wp-admin/includes/template.php +++ b/wp-admin/includes/template.php @@ -2967,12 +2967,11 @@ function get_hidden_meta_boxes($screen) { if ( is_string($screen) ) $screen = convert_to_screen($screen); - $hidden = (array) get_user_option( "meta-box-hidden_$screen->id" ); + $hidden = get_user_option( "meta-box-hidden_$screen->id" ); // Hide slug boxes by default - if ( empty($hidden[0]) ) { + if ( !is_array($hidden) ) $hidden = array('slugdiv'); - } return $hidden; }