From c62a9fe508b7ffcba05d0d4c5b1f3c8df178e75b Mon Sep 17 00:00:00 2001 From: nacin Date: Sun, 23 Oct 2011 19:22:27 +0000 Subject: [PATCH] Rework get_hidden_meta_boxes() to leverage a full WP_Screen object. Prevents custom post types from having their explicity supported meta boxes being hidden by default. see #18958. git-svn-id: http://svn.automattic.com/wordpress/trunk@19049 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/screen.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/wp-admin/includes/screen.php b/wp-admin/includes/screen.php index 9cff3612f4..f408871e1d 100644 --- a/wp-admin/includes/screen.php +++ b/wp-admin/includes/screen.php @@ -90,16 +90,21 @@ function get_hidden_meta_boxes( $screen ) { $hidden = get_user_option( "metaboxhidden_{$screen->id}" ); + $use_defaults = ! is_array( $hidden ); + // Hide slug boxes by default - if ( !is_array( $hidden ) ) { - if ( 'post' == $screen->base || 'page' == $screen->base ) - $hidden = array('slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv'); - else - $hidden = array( 'slugdiv' ); - $hidden = apply_filters('default_hidden_meta_boxes', $hidden, $screen); + if ( $use_defaults ) { + $hidden = array(); + if ( 'post' == $screen->base ) { + if ( 'post' == $screen->post_type || 'page' == $screen->post_type ) + $hidden = array('slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv'); + else + $hidden = array( 'slugdiv' ); + } + $hidden = apply_filters( 'default_hidden_meta_boxes', $hidden, $screen ); } - return $hidden; + return apply_filters( 'hidden_meta_boxes', $hidden, $screen, $use_defaults ); } /**