wp/wp-includes/admin-bar.php
changeset 19 3d72ae0968f4
parent 18 be944660c56a
child 21 48c4eec2b7e6
--- a/wp/wp-includes/admin-bar.php	Wed Sep 21 18:19:35 2022 +0200
+++ b/wp/wp-includes/admin-bar.php	Tue Sep 27 16:37:53 2022 +0200
@@ -8,7 +8,7 @@
  */
 
 /**
- * Instantiate the admin bar object and set it up as a global for access elsewhere.
+ * Instantiates the admin bar object and set it up as a global for access elsewhere.
  *
  * UNHOOKING THIS FUNCTION WILL NOT PROPERLY REMOVE THE ADMIN BAR.
  * For that, use show_admin_bar(false) or the {@see 'show_admin_bar'} filter.
@@ -84,13 +84,13 @@
 	}
 
 	/**
-	 * Load all necessary admin bar items.
+	 * Loads all necessary admin bar items.
 	 *
 	 * This is the hook used to add, remove, or manipulate admin bar items.
 	 *
 	 * @since 3.1.0
 	 *
-	 * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference
+	 * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance, passed by reference.
 	 */
 	do_action_ref_array( 'admin_bar_menu', array( &$wp_admin_bar ) );
 
@@ -114,11 +114,11 @@
 }
 
 /**
- * Add the WordPress logo menu.
+ * Adds the WordPress logo menu.
  *
  * @since 3.3.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_wp_menu( $wp_admin_bar ) {
 	if ( current_user_can( 'read' ) ) {
@@ -198,11 +198,11 @@
 }
 
 /**
- * Add the sidebar toggle button.
+ * Adds the sidebar toggle button.
  *
  * @since 3.8.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_sidebar_toggle( $wp_admin_bar ) {
 	if ( is_admin() ) {
@@ -217,11 +217,11 @@
 }
 
 /**
- * Add the "My Account" item.
+ * Adds the "My Account" item.
  *
  * @since 3.3.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_my_account_item( $wp_admin_bar ) {
 	$user_id      = get_current_user_id();
@@ -258,11 +258,11 @@
 }
 
 /**
- * Add the "My Account" submenu items.
+ * Adds the "My Account" submenu items.
  *
  * @since 3.1.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_my_account_menu( $wp_admin_bar ) {
 	$user_id      = get_current_user_id();
@@ -328,11 +328,11 @@
 }
 
 /**
- * Add the "Site Name" menu.
+ * Adds the "Site Name" menu.
  *
  * @since 3.3.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_site_menu( $wp_admin_bar ) {
 	// Don't show for logged out users.
@@ -409,16 +409,48 @@
 }
 
 /**
+ * Adds the "Edit site" link to the Toolbar.
+ *
+ * @since 5.9.0
+ *
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
+ */
+function wp_admin_bar_edit_site_menu( $wp_admin_bar ) {
+	// Don't show if a block theme is not activated.
+	if ( ! wp_is_block_theme() ) {
+		return;
+	}
+
+	// Don't show for users who can't edit theme options or when in the admin.
+	if ( ! current_user_can( 'edit_theme_options' ) || is_admin() ) {
+		return;
+	}
+
+	$wp_admin_bar->add_node(
+		array(
+			'id'    => 'site-editor',
+			'title' => __( 'Edit site' ),
+			'href'  => admin_url( 'site-editor.php' ),
+		)
+	);
+}
+
+/**
  * Adds the "Customize" link to the Toolbar.
  *
  * @since 4.3.0
  *
- * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance.
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  * @global WP_Customize_Manager $wp_customize
  */
 function wp_admin_bar_customize_menu( $wp_admin_bar ) {
 	global $wp_customize;
 
+	// Don't show if a block theme is activated and no plugins use the customizer.
+	if ( wp_is_block_theme() && ! has_action( 'customize_register' ) ) {
+		return;
+	}
+
 	// Don't show for users who can't access the customizer or when in the admin.
 	if ( ! current_user_can( 'customize' ) || is_admin() ) {
 		return;
@@ -455,11 +487,11 @@
 }
 
 /**
- * Add the "My Sites/[Site Name]" menu and all submenus.
+ * Adds the "My Sites/[Site Name]" menu and all submenus.
  *
  * @since 3.1.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_my_sites_menu( $wp_admin_bar ) {
 	// Don't show for logged out users or single site mode.
@@ -579,14 +611,27 @@
 		)
 	);
 
+	/**
+	 * Filters whether to show the site icons in toolbar.
+	 *
+	 * Returning false to this hook is the recommended way to hide site icons in the toolbar.
+	 * A truthy return may have negative performance impact on large multisites.
+	 *
+	 * @since 6.0.0
+	 *
+	 * @param bool $show_site_icons Whether site icons should be shown in the toolbar. Default true.
+	 */
+	$show_site_icons = apply_filters( 'wp_admin_bar_show_site_icons', true );
+
 	foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
 		switch_to_blog( $blog->userblog_id );
 
-		if ( has_site_icon() ) {
+		if ( true === $show_site_icons && has_site_icon() ) {
 			$blavatar = sprintf(
-				'<img class="blavatar" src="%s" srcset="%s 2x" alt="" width="16" height="16" />',
+				'<img class="blavatar" src="%s" srcset="%s 2x" alt="" width="16" height="16"%s />',
 				esc_url( get_site_icon_url( 16 ) ),
-				esc_url( get_site_icon_url( 32 ) )
+				esc_url( get_site_icon_url( 32 ) ),
+				( wp_lazy_loading_enabled( 'img', 'site_icon_in_toolbar' ) ? ' loading="lazy"' : '' )
 			);
 		} else {
 			$blavatar = '<div class="blavatar"></div>';
@@ -665,11 +710,11 @@
 }
 
 /**
- * Provide a shortlink.
+ * Provides a shortlink.
  *
  * @since 3.1.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_shortlink_menu( $wp_admin_bar ) {
 	$short = wp_get_shortlink( 0, 'query' );
@@ -692,7 +737,7 @@
 }
 
 /**
- * Provide an edit link for posts and terms.
+ * Provides an edit link for posts and terms.
  *
  * @since 3.1.0
  * @since 5.5.0 Added a "View Post" link on Comments screen for a single post.
@@ -703,7 +748,7 @@
  *                                global $user_ID, which contains the ID of the current user.
  * @global int      $post_id      The ID of the post when editing comments for a single post.
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_edit_menu( $wp_admin_bar ) {
 	global $tag, $wp_the_query, $user_id, $post_id;
@@ -836,11 +881,11 @@
 }
 
 /**
- * Add "Add New" menu.
+ * Adds "Add New" menu.
  *
  * @since 3.1.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_new_content_menu( $wp_admin_bar ) {
 	$actions = array();
@@ -912,11 +957,11 @@
 }
 
 /**
- * Add edit comments link with awaiting moderation count bubble.
+ * Adds edit comments link with awaiting moderation count bubble.
  *
  * @since 3.1.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_comments_menu( $wp_admin_bar ) {
 	if ( ! current_user_can( 'edit_posts' ) ) {
@@ -945,11 +990,11 @@
 }
 
 /**
- * Add appearance submenu items to the "Site Name" menu.
+ * Adds appearance submenu items to the "Site Name" menu.
  *
  * @since 3.1.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_appearance_menu( $wp_admin_bar ) {
 	$wp_admin_bar->add_group(
@@ -1027,11 +1072,11 @@
 }
 
 /**
- * Provide an update link if theme/plugin/core updates are available.
+ * Provides an update link if theme/plugin/core updates are available.
  *
  * @since 3.1.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_updates_menu( $wp_admin_bar ) {
 
@@ -1061,11 +1106,11 @@
 }
 
 /**
- * Add search form.
+ * Adds search form.
  *
  * @since 3.3.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_search_menu( $wp_admin_bar ) {
 	if ( is_admin() ) {
@@ -1092,11 +1137,11 @@
 }
 
 /**
- * Add a link to exit recovery mode when Recovery Mode is active.
+ * Adds a link to exit recovery mode when Recovery Mode is active.
  *
  * @since 5.2.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_recovery_mode_menu( $wp_admin_bar ) {
 	if ( ! wp_is_recovery_mode() ) {
@@ -1118,11 +1163,11 @@
 }
 
 /**
- * Add secondary menus.
+ * Adds secondary menus.
  *
  * @since 3.3.0
  *
- * @param WP_Admin_Bar $wp_admin_bar
+ * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
  */
 function wp_admin_bar_add_secondary_groups( $wp_admin_bar ) {
 	$wp_admin_bar->add_group(
@@ -1146,7 +1191,7 @@
 }
 
 /**
- * Style and scripts for the admin bar.
+ * Prints style and scripts for the admin bar.
  *
  * @since 3.1.0
  */
@@ -1158,7 +1203,7 @@
 }
 
 /**
- * Default admin bar callback.
+ * Prints default admin bar callback.
  *
  * @since 3.1.0
  */
@@ -1167,10 +1212,8 @@
 	?>
 <style<?php echo $type_attr; ?> media="screen">
 	html { margin-top: 32px !important; }
-	* html body { margin-top: 32px !important; }
 	@media screen and ( max-width: 782px ) {
 		html { margin-top: 46px !important; }
-		* html body { margin-top: 46px !important; }
 	}
 </style>
 	<?php
@@ -1203,7 +1246,7 @@
  * @since 3.1.0
  *
  * @global bool   $show_admin_bar
- * @global string $pagenow
+ * @global string $pagenow        The filename of the current screen.
  *
  * @return bool Whether the admin bar should be showing.
  */
@@ -1248,7 +1291,7 @@
 }
 
 /**
- * Retrieve the admin bar display preference of a user.
+ * Retrieves the admin bar display preference of a user.
  *
  * @since 3.1.0
  * @access private