WordPress.org

Make WordPress Core

Ticket #19080: 19080.diff

File 19080.diff, 2.4 KB (added by nacin, 7 years ago)
  • wp-admin/includes/template.php

     
    849849        if ( empty( $screen ) )
    850850                $screen = get_current_screen();
    851851        elseif ( is_string( $screen ) )
    852                 $screen = convert_to_screen( $screen );
     852                $screen = WP_Screen::for_meta_box( $screen );
    853853
    854854        $page = $screen->id;
    855855
     
    918918        if ( empty( $screen ) )
    919919                $screen = get_current_screen();
    920920        elseif ( is_string( $screen ) )
    921                 $screen = convert_to_screen( $screen );
     921                $screen = WP_Screen::for_meta_box( $screen );
    922922
    923923        $page = $screen->id;
    924924
     
    984984        if ( empty( $screen ) )
    985985                $screen = get_current_screen();
    986986        elseif ( is_string( $screen ) )
    987                 $screen = convert_to_screen( $screen );
     987                $screen = WP_Screen::for_meta_box( $screen );
    988988
    989989        $page = $screen->id;
    990990
  • wp-admin/includes/screen.php

     
    5252        global $wp_meta_boxes;
    5353
    5454        if ( is_string( $screen ) )
    55                 $screen = convert_to_screen( $screen );
     55                $screen = WP_Screen::for_meta_box( $screen );
    5656
    5757        if ( empty($wp_meta_boxes[$screen->id]) )
    5858                return;
     
    8686 */
    8787function get_hidden_meta_boxes( $screen ) {
    8888        if ( is_string( $screen ) )
    89                 $screen = convert_to_screen( $screen );
     89                $screen = WP_Screen::for_meta_box( $screen );
    9090
    9191        $hidden = get_user_option( "metaboxhidden_{$screen->id}" );
    9292
     
    498498                        $base .= '-user';
    499499                }
    500500
    501                 if ( isset( self::$_registry[ $id ] ) )
    502                         return self::$_registry[ $id ];
     501                if ( isset( self::$_registry[ $id ] ) ) {
     502                        $screen = self::$_registry[ $id ];
     503                        if ( $screen === get_current_screen() )
     504                                return $screen;
     505                } else {
     506                        $screen = new WP_Screen();
     507                        $screen->id     = $id;
     508                }
    503509
    504                 $screen = new WP_Screen();
    505                 $screen->id         = $id;
    506510                $screen->base       = $base;
    507511                $screen->action     = $action;
    508512                $screen->post_type  = $post_type;
     
    515519                return $screen;
    516520        }
    517521
     522        static function for_meta_box( $meta_box ) {
     523                if ( post_type_exists( $meta_box ) )
     524                        return WP_Screen::get( 'post-' . $meta_box );
     525                else
     526                        return WP_Screen::get( $meta_box );
     527        }
     528
    518529        /**
    519530         * Makes the screen object the current screen.
    520531         *