WordPress.org

Make WordPress Core

Ticket #37949: 37949.3.patch

File 37949.3.patch, 3.8 KB (added by ocean90, 5 years ago)
  • src/wp-admin/css/colors/_admin.scss

     
    324324#wpadminbar li:hover .ab-item:before,
    325325#wpadminbar li a:focus .ab-icon:before,
    326326#wpadminbar li .ab-item:focus:before,
     327#wpadminbar li .ab-item:focus .ab-icon:before,
    327328#wpadminbar li.hover .ab-icon:before,
    328329#wpadminbar li.hover .ab-item:before,
    329330#wpadminbar li:hover #adminbarsearch:before,
  • src/wp-includes/admin-bar.php

     
    107107 * @param WP_Admin_Bar $wp_admin_bar
    108108 */
    109109function wp_admin_bar_wp_menu( $wp_admin_bar ) {
    110         $wp_admin_bar->add_menu( array(
     110        if ( current_user_can( 'read' ) ) {
     111                $about_url = self_admin_url( 'about.php' );
     112        } elseif ( is_multisite() ) {
     113                $about_url = get_dashboard_url( get_current_user_id(), 'about.php' );
     114        } else {
     115                $about_url = false;
     116        }
     117
     118        $wp_logo_menu_args = array(
    111119                'id'    => 'wp-logo',
    112120                'title' => '<span class="ab-icon"></span><span class="screen-reader-text">' . __( 'About WordPress' ) . '</span>',
    113                 'href'  => self_admin_url( 'about.php' ),
    114         ) );
     121                'href'  => $about_url,
     122        );
    115123
    116         if ( is_user_logged_in() ) {
     124        // Set tabindex="0" to make sub menus accessible when no URL is available.
     125        if ( ! $about_url ) {
     126                $wp_logo_menu_args['meta'] = array(
     127                        'tabindex' => 0,
     128                );
     129        }
     130
     131        $wp_admin_bar->add_menu( $wp_logo_menu_args );
     132
     133        if ( $about_url ) {
    117134                // Add "About WordPress" link
    118135                $wp_admin_bar->add_menu( array(
    119136                        'parent' => 'wp-logo',
    120137                        'id'     => 'about',
    121138                        'title'  => __('About WordPress'),
    122                         'href'   => self_admin_url( 'about.php' ),
     139                        'href'   => $about_url,
    123140                ) );
    124141        }
    125142
     
    294311        }
    295312
    296313        if ( is_network_admin() ) {
    297                 /* translators: %s: site name */ 
     314                /* translators: %s: site name */
    298315                $blogname = sprintf( __( 'Network Admin: %s' ), esc_html( get_current_site()->site_name ) );
    299316        } elseif ( is_user_admin() ) {
    300                 /* translators: %s: site name */ 
     317                /* translators: %s: site name */
    301318                $blogname = sprintf( __( 'User Dashboard: %s' ), esc_html( get_current_site()->site_name ) );
    302319        }
    303320
  • src/wp-includes/css/admin-bar.css

     
    294294#wpadminbar li:hover .ab-item:before,
    295295#wpadminbar li a:focus .ab-icon:before,
    296296#wpadminbar li .ab-item:focus:before,
     297#wpadminbar li .ab-item:focus .ab-icon:before,
    297298#wpadminbar li.hover .ab-icon:before,
    298299#wpadminbar li.hover .ab-item:before,
    299300#wpadminbar li:hover #adminbarsearch:before,
  • tests/phpunit/tests/adminbar.php

     
    407407
    408408                $this->assertNull( $node );
    409409        }
     410
     411        /**
     412         * @ticket 37949
     413         */
     414        public function test_admin_bar_does_not_add_about_page_url() {
     415                wp_set_current_user( self::$no_role_id );
     416
     417                set_current_screen( 'front' );
     418
     419                $wp_admin_bar = $this->get_standard_admin_bar();
     420                $node         = $wp_admin_bar->get_node( 'wp-logo' );
     421
     422                $this->assertNotNull( $node );
     423                $this->assertSame( false, $node->href );
     424                $this->assertArrayHasKey( 'tabindex', $node->meta );
     425                $this->assertSame( 0, $node->meta['tabindex'] );
     426
     427                wp_set_current_user( self::$editor_id );
     428
     429                $wp_admin_bar = $this->get_standard_admin_bar();
     430                $node         = $wp_admin_bar->get_node( 'wp-logo' );
     431
     432                $this->assertNotNull( $node );
     433                $this->assertSame( admin_url( 'about.php' ), $node->href );
     434                $this->assertArrayNotHasKey( 'tabindex', $node->meta );
     435        }
    410436}