WordPress.org

Make WordPress Core

Ticket #21742: 21742.diff

File 21742.diff, 3.2 KB (added by ryan, 20 months ago)

Rough take on using WP_Screen

  • wp-includes/load.php

     
    583583 * @return bool True if inside WordPress administration pages. 
    584584 */ 
    585585function is_admin() { 
    586         if ( defined( 'WP_ADMIN' ) ) 
     586        if ( class_exists( 'WP_Screen' ) && $screen = get_current_screen() ) 
     587                return $screen->is_admin; 
     588        elseif ( defined( 'WP_ADMIN' ) ) 
    587589                return WP_ADMIN; 
     590 
    588591        return false; 
    589592} 
    590593 
     
    599602 * @return bool True if inside WordPress network administration pages. 
    600603 */ 
    601604function is_blog_admin() { 
    602         if ( defined( 'WP_BLOG_ADMIN' ) ) 
     605        if ( class_exists( 'WP_Screen' ) && $screen = get_current_screen() ) 
     606                return $screen->is_blog; 
     607        elseif ( defined( 'WP_BLOG_ADMIN' ) ) 
    603608                return WP_BLOG_ADMIN; 
     609 
    604610        return false; 
    605611} 
    606612 
     
    615621 * @return bool True if inside WordPress network administration pages. 
    616622 */ 
    617623function is_network_admin() { 
    618         if ( defined( 'WP_NETWORK_ADMIN' ) ) 
     624        if ( class_exists( 'WP_Screen' ) && $screen = get_current_screen() ) 
     625                return $screen->is_network; 
     626        elseif ( defined( 'WP_NETWORK_ADMIN' ) ) 
    619627                return WP_NETWORK_ADMIN; 
    620628        return false; 
    621629} 
     
    631639 * @return bool True if inside WordPress user administration pages. 
    632640 */ 
    633641function is_user_admin() { 
    634         if ( defined( 'WP_USER_ADMIN' ) ) 
     642        if ( class_exists( 'WP_Screen' ) && $screen = get_current_screen() ) 
     643                return $screen->is_user; 
     644        elseif ( defined( 'WP_USER_ADMIN' ) ) 
    635645                return WP_USER_ADMIN; 
    636646        return false; 
    637647} 
  • wp-admin/includes/screen.php

     
    260260         * @access public 
    261261         */ 
    262262        public $is_user; 
     263        public $is_blog; 
     264        public $is_admin; 
    263265 
    264266        /** 
    265267         * The base menu parent. 
     
    377379                        return $hook_name; 
    378380 
    379381                $post_type = $taxonomy = null; 
    380                 $is_network = $is_user = false; 
     382                $is_network = $is_user = $is_blog = $is_admin = false; 
    381383                $action = ''; 
    382384 
    383385                if ( $hook_name ) 
     
    402404                if ( ! $post_type && $hook_name ) { 
    403405                        if ( '-network' == substr( $id, -8 ) ) { 
    404406                                $id = substr( $id, 0, -8 ); 
    405                                 $is_network = true; 
     407                                $is_network = $is_admin = true; 
    406408                        } elseif ( '-user' == substr( $id, -5 ) ) { 
    407409                                $id = substr( $id, 0, -5 ); 
    408                                 $is_user = true; 
     410                                $is_user = $is_admin = true; 
    409411                        } 
    410412 
    411413                        $id = sanitize_key( $id ); 
     
    419421                                        $post_type = $maybe; 
    420422                                } 
    421423                        } 
     424 
     425                        if ( ! $is_network && ! $is_user ) 
     426                                $is_blog = true; 
    422427                } else { 
    423                         $is_network = is_network_admin(); 
    424                         $is_user = is_user_admin(); 
     428                        $is_network = defined( 'WP_NETWORK_ADMIN' ) ? WP_NETWORK_ADMIN : false; 
     429                        $is_user = defined( 'WP_USER_ADMIN' ) ? WP_USER_ADMIN : false; 
     430                        $is_blog = defined( 'WP_BLOG_ADMIN' ) ? WP_BLOG_ADMIN : false; 
     431                        $is_admin = defined( 'WP_ADMIN' ) ? WP_ADMIN : false; 
    425432                } 
    426433 
    427434                if ( 'index' == $id ) 
     
    499506                $screen->taxonomy   = (string) $taxonomy; 
    500507                $screen->is_user    = $is_user; 
    501508                $screen->is_network = $is_network; 
     509                $screen->is_blog    = $is_blog; 
     510                $screen->is_admin = $is_admin; 
    502511 
    503512                self::$_registry[ $id ] = $screen; 
    504513