File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -385,15 +385,22 @@ function wp_admin_bar_site_menu( $wp_admin_bar ) {
385385 }
386386
387387 $ title = wp_html_excerpt ( $ blogname , 40 , '… ' );
388+ $ meta = array (
389+ 'menu_title ' => $ title ,
390+ );
391+
392+ $ site_icon_url = get_site_icon_url ( 64 );
393+ if ( $ site_icon_url ) {
394+ $ title = '<img class="site-icon" src=" ' . esc_url ( $ site_icon_url ) . '" alt="" /> ' . $ title ;
395+ $ meta ['class ' ] = 'has-site-icon ' ;
396+ }
388397
389398 $ wp_admin_bar ->add_node (
390399 array (
391400 'id ' => 'site-name ' ,
392401 'title ' => $ title ,
393402 'href ' => ( is_admin () || ! current_user_can ( 'read ' ) ) ? home_url ( '/ ' ) : admin_url (),
394- 'meta ' => array (
395- 'menu_title ' => $ title ,
396- ),
403+ 'meta ' => $ meta ,
397404 )
398405 );
399406
Original file line number Diff line number Diff line change @@ -581,6 +581,19 @@ html:lang(he-il) .rtl #wpadminbar * {
581581 content : "\f102" / '' ;
582582}
583583
584+ # wpadminbar # wp-admin-bar-site-name .has-site-icon > .ab-item : before {
585+ content : none;
586+ }
587+
588+ # wpadminbar # wp-admin-bar-site-name > .ab-item .site-icon {
589+ width : 20px ;
590+ height : 20px ;
591+ margin : 0 6px 0 0 ;
592+ vertical-align : -5px ;
593+ background : # f0f0f1 ;
594+ border-radius : 4px ;
595+ }
596+
584597
585598
586599/**
@@ -902,7 +915,7 @@ html:lang(he-il) .rtl #wpadminbar * {
902915
903916 # wpadminbar # wp-admin-bar-edit > .ab-item : before ,
904917 # wpadminbar # wp-admin-bar-my-sites > .ab-item : before ,
905- # wpadminbar # wp-admin-bar-site-name > .ab-item : before ,
918+ # wpadminbar # wp-admin-bar-site-name : not (. has-site-icon ) > .ab-item : before ,
906919 # wpadminbar # wp-admin-bar-site-editor > .ab-item : before ,
907920 # wpadminbar # wp-admin-bar-customize > .ab-item : before ,
908921 # wpadminbar # wp-admin-bar-my-account > .ab-item : before ,
@@ -917,6 +930,15 @@ html:lang(he-il) .rtl #wpadminbar * {
917930 -moz-osx-font-smoothing : grayscale;
918931 }
919932
933+ # wpadminbar # wp-admin-bar-site-name > .ab-item .site-icon {
934+ position : absolute;
935+ top : 9px ;
936+ left : 12px ;
937+ width : 28px ;
938+ height : 28px ;
939+ margin : 0 ;
940+ }
941+
920942 # wpadminbar # wp-admin-bar-appearance {
921943 margin-top : 0 ;
922944 }
Original file line number Diff line number Diff line change @@ -131,6 +131,37 @@ public function test_admin_bar_contains_correct_links_for_users_with_role() {
131131 $ this ->assertSame ( $ profile_url , $ node_user_info ->href );
132132 }
133133
134+ /**
135+ * @covers ::wp_admin_bar_site_menu
136+ */
137+ public function test_admin_bar_site_name_node_has_no_site_icon_when_unset () {
138+ wp_set_current_user ( self ::$ editor_id );
139+
140+ $ wp_admin_bar = $ this ->get_standard_admin_bar ();
141+ $ node_site_name = $ wp_admin_bar ->get_node ( 'site-name ' );
142+
143+ $ this ->assertStringNotContainsString ( 'site-icon ' , $ node_site_name ->title );
144+ $ this ->assertArrayNotHasKey ( 'class ' , $ node_site_name ->meta );
145+ }
146+
147+ /**
148+ * @covers ::wp_admin_bar_site_menu
149+ * @requires function imagejpeg
150+ */
151+ public function test_admin_bar_site_name_node_includes_site_icon_when_set () {
152+ wp_set_current_user ( self ::$ editor_id );
153+
154+ $ attachment_id = self ::factory ()->attachment ->create_upload_object ( DIR_TESTDATA . '/images/test-image.jpg ' );
155+ update_option ( 'site_icon ' , $ attachment_id );
156+
157+ $ wp_admin_bar = $ this ->get_standard_admin_bar ();
158+ $ node_site_name = $ wp_admin_bar ->get_node ( 'site-name ' );
159+
160+ $ this ->assertStringContainsString ( '<img class="site-icon" ' , $ node_site_name ->title );
161+ $ this ->assertStringContainsString ( esc_url ( get_site_icon_url ( 64 ) ), $ node_site_name ->title );
162+ $ this ->assertSame ( 'has-site-icon ' , $ node_site_name ->meta ['class ' ] );
163+ }
164+
134165 /**
135166 * @ticket 25162
136167 * @group multisite
You can’t perform that action at this time.
0 commit comments