WordPress.org

Make WordPress Core

Ticket #19122: 19122.2.diff

File 19122.2.diff, 2.9 KB (added by duck_, 2 years ago)
  • wp-includes/admin-bar.php

     
    228228        if ( $title != $blogname ) 
    229229                $title = trim( $title ) . '…'; 
    230230 
     231        $member_of_site = is_super_admin() || is_user_member_of_blog( get_current_user_id(), get_current_blog_id() ); 
     232 
    231233        $wp_admin_bar->add_menu( array( 
    232234                'id'    => 'site-name', 
    233235                'title' => $title, 
    234                 'href'  => is_admin() ? home_url() : admin_url(), 
     236                'href'  => ( ! $member_of_site || is_admin() ) ? home_url() : admin_url(), 
    235237        ) ); 
    236238 
    237         // Create submenu items. 
     239        // Create submenu items if the current user is a member of the site. 
     240        if ( $member_of_site ) { 
     241                if ( is_admin() ) { 
     242                        // Add an option to visit the site. 
     243                        $wp_admin_bar->add_menu( array( 
     244                                'parent' => 'site-name', 
     245                                'id'     => 'view-site', 
     246                                'title'  => __( 'Visit Site' ), 
     247                                'href'   => home_url(), 
     248                        ) ); 
     249                } else { 
     250                        // Add the dashboard item. 
     251                        $wp_admin_bar->add_menu( array( 
     252                                'parent' => 'site-name', 
     253                                'id'     => 'dashboard', 
     254                                'title'  => __( 'Dashboard' ), 
     255                                'href'   => admin_url(), 
     256                        ) ); 
    238257 
    239         if ( is_admin() ) { 
    240                 // Add an option to visit the site. 
    241                 $wp_admin_bar->add_menu( array( 
    242                         'parent' => 'site-name', 
    243                         'id'     => 'view-site', 
    244                         'title'  => __( 'Visit Site' ), 
    245                         'href'   => home_url(), 
    246                 ) ); 
    247  
    248         // We're on the front end, print a copy of the admin menu. 
    249         } else { 
    250                 // Add the dashboard item. 
    251                 $wp_admin_bar->add_menu( array( 
    252                         'parent' => 'site-name', 
    253                         'id'     => 'dashboard', 
    254                         'title'  => __( 'Dashboard' ), 
    255                         'href'   => admin_url(), 
    256                 ) ); 
    257  
    258                 // Add the appearance submenu items. 
    259                 wp_admin_bar_appearance_menu( $wp_admin_bar ); 
     258                        // Add the appearance submenu items. 
     259                        wp_admin_bar_appearance_menu( $wp_admin_bar ); 
     260                } 
    260261        } 
    261262} 
    262263 
     
    272273        if ( ! is_user_logged_in() || ! is_multisite() ) 
    273274                return; 
    274275 
    275         // Show only when there are more than two items in the menu. 
    276         if ( count( $wp_admin_bar->user->blogs ) <= 1 && ! is_super_admin() ) 
     276        // Show when the user has at least 1 site, or they're a super admin. 
     277        if ( count( $wp_admin_bar->user->blogs ) < 1 && ! is_super_admin() ) 
    277278                return; 
    278279 
    279280        $wp_admin_bar->add_menu( array( 
     
    331332        $blue_wp_logo_url = includes_url('images/wpmini-blue.png'); 
    332333 
    333334        foreach ( (array) $wp_admin_bar->user->blogs as $blog ) { 
    334                 // Skip the current blog (unless we're in the network/user admin). 
    335                 if ( $blog->userblog_id == get_current_blog_id() && ! is_network_admin() && ! is_user_admin() ) { 
    336                         continue; 
    337                 } 
    338  
    339335                // @todo Replace with some favicon lookup. 
    340336                //$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $blue_wp_logo_url ) ) . '" alt="Blavatar" width="16" height="16" />'; 
    341337                $blavatar = '<img src="' . esc_url($blue_wp_logo_url) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>';