WordPress.org

Make WordPress Core

Ticket #21742: 21742.diff

File 21742.diff, 3.2 KB (added by ryan, 6 years 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