WordPress.org

Make WordPress Core

Ticket #21742: 21742.4.diff

File 21742.4.diff, 4.6 KB (added by ryan, 20 months ago)
  • wp-includes/load.php

     
    583583 * @return bool True if inside WordPress administration pages. 
    584584 */ 
    585585function is_admin() { 
    586         if ( defined( 'WP_ADMIN' ) ) 
     586        if ( isset( $GLOBALS['current_screen'] ) ) 
     587                return $GLOBALS['current_screen']->in_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 ( isset( $GLOBALS['current_screen'] ) ) 
     606                return $GLOBALS['current_screen']->in_admin( '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 ( isset( $GLOBALS['current_screen'] ) ) 
     625                return $GLOBALS['current_screen']->in_admin( 'network' ); 
     626        elseif ( defined( 'WP_NETWORK_ADMIN' ) ) 
    619627                return WP_NETWORK_ADMIN; 
     628 
    620629        return false; 
    621630} 
    622631 
     
    631640 * @return bool True if inside WordPress user administration pages. 
    632641 */ 
    633642function is_user_admin() { 
    634         if ( defined( 'WP_USER_ADMIN' ) ) 
     643        if ( isset( $GLOBALS['current_screen'] ) ) 
     644                return $GLOBALS['current_screen']->in_admin( 'user' ); 
     645        elseif ( defined( 'WP_USER_ADMIN' ) ) 
    635646                return WP_USER_ADMIN; 
     647 
    636648        return false; 
    637649} 
    638650 
  • wp-admin/includes/screen.php

     
    244244        public $id; 
    245245 
    246246        /** 
     247         * Which admin the screen is in. network | user | blog | false 
     248         * 
     249         * @since 3.5.0 
     250         * @var string 
     251         * @access protected 
     252         */ 
     253        protected $in_admin; 
     254 
     255        /** 
    247256         * Whether the screen is in the network admin. 
    248257         * 
     258         * Deprecated. Use in_admin() instead. 
     259         * 
    249260         * @since 3.3.0 
     261         * @deprecated 3.5.0 
    250262         * @var bool 
    251263         * @access public 
    252264         */ 
     
    255267        /** 
    256268         * Whether the screen is in the user admin. 
    257269         * 
     270         * Deprecated. Use in_admin() instead. 
     271         * 
    258272         * @since 3.3.0 
     273         * @deprecated 3.5.0 
    259274         * @var bool 
    260275         * @access public 
    261276         */ 
     
    377392                        return $hook_name; 
    378393 
    379394                $post_type = $taxonomy = null; 
    380                 $is_network = $is_user = false; 
     395                $in_admin = false; 
    381396                $action = ''; 
    382397 
    383398                if ( $hook_name ) 
     
    402417                if ( ! $post_type && $hook_name ) { 
    403418                        if ( '-network' == substr( $id, -8 ) ) { 
    404419                                $id = substr( $id, 0, -8 ); 
    405                                 $is_network = true; 
     420                                $in_admin = 'network'; 
    406421                        } elseif ( '-user' == substr( $id, -5 ) ) { 
    407422                                $id = substr( $id, 0, -5 ); 
    408                                 $is_user = true; 
     423                                $in_admin = 'user'; 
    409424                        } 
    410425 
    411426                        $id = sanitize_key( $id ); 
     
    419434                                        $post_type = $maybe; 
    420435                                } 
    421436                        } 
     437 
     438                        if ( ! $in_admin ) 
     439                                $in_admin = 'blog'; 
    422440                } else { 
    423                         $is_network = is_network_admin(); 
    424                         $is_user = is_user_admin(); 
     441                        if ( defined( 'WP_NETWORK_ADMIN' ) && WP_NETWORK_ADMIN ) 
     442                                $in_admin = 'network'; 
     443                        elseif ( defined( 'WP_USER_ADMIN' ) && WP_USER_ADMIN ) 
     444                                $in_admin = 'user'; 
     445                        else 
     446                                $in_admin = 'blog'; 
    425447                } 
    426448 
    427449                if ( 'index' == $id ) 
    428450                        $id = 'dashboard'; 
     451                elseif ( 'front' == $id ) 
     452                        $in_admin = false; 
    429453 
    430454                $base = $id; 
    431455 
     
    476500                                break; 
    477501                } 
    478502 
    479                 if ( $is_network ) { 
     503                if ( 'network' == $in_admin ) { 
    480504                        $id   .= '-network'; 
    481505                        $base .= '-network'; 
    482                 } elseif ( $is_user ) { 
     506                } elseif ( 'user' == $in_admin ) { 
    483507                        $id   .= '-user'; 
    484508                        $base .= '-user'; 
    485509                } 
     
    497521                $screen->action     = $action; 
    498522                $screen->post_type  = (string) $post_type; 
    499523                $screen->taxonomy   = (string) $taxonomy; 
    500                 $screen->is_user    = $is_user; 
    501                 $screen->is_network = $is_network; 
     524                $screen->is_user    = ( 'user' == $in_admin ); 
     525                $screen->is_network = ( 'network' == $in_admin ); 
     526                $screen->in_admin   = $in_admin; 
    502527 
    503528                self::$_registry[ $id ] = $screen; 
    504529 
     
    528553        private function __construct() {} 
    529554 
    530555        /** 
     556         * Indicates whether the screen is in a particular admin 
     557         * 
     558         * @since 3.5.0 
     559         * 
     560         * @param string $admin The admin to check against (network | user | blog). 
     561         * If empty any of the three admins will result in true. 
     562         * @return boolean True if the screen is in the indicated admin, false otherwise. 
     563         * 
     564         */ 
     565        public function in_admin( $admin = null ) { 
     566                if ( empty( $admin ) ) 
     567                        return (bool) $this->in_admin; 
     568 
     569                return ( $admin == $this->in_admin ); 
     570        } 
     571 
     572        /** 
    531573         * Sets the old string-based contextual help for the screen. 
    532574         * 
    533575         * For backwards compatibility.