From 8fba126815351fdfd55f2e6e090a6a86c99da4aa Mon Sep 17 00:00:00 2001
From: S H Mohanjith <moha@mohanjith.net>
Date: Wed, 4 Dec 2013 23:58:31 +0200
Subject: [PATCH] Don't load million blogs in my sites menu, you can't click
 on ones that are outside of the view port

---
 wp-includes/admin-bar.php | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/wp-includes/admin-bar.php b/wp-includes/admin-bar.php
index c11a1f3..9acc685 100644
--- a/wp-includes/admin-bar.php
+++ b/wp-includes/admin-bar.php
@@ -332,6 +332,8 @@ function wp_admin_bar_site_menu( $wp_admin_bar ) {
  * @param WP_Admin_Bar $wp_admin_bar
  */
 function wp_admin_bar_my_sites_menu( $wp_admin_bar ) {
+	global $current_user;
+
 	// Don't show for logged out users or single site mode.
 	if ( ! is_user_logged_in() || ! is_multisite() )
 		return;
@@ -400,7 +402,21 @@ function wp_admin_bar_my_sites_menu( $wp_admin_bar ) {
 		),
 	) );
 
+	if ( count( $wp_admin_bar->user->blogs ) > 15 ) {
+		$wp_admin_bar->add_menu( array(
+			'parent' => 'my-sites-list',
+			'id'    => 'my-sites-list-all',
+			'title' => __( 'See All' ),
+			'href'  => get_admin_url( get_user_meta($current_user->ID, 'primary_blog', true), 'my-sites.php' ),
+		) );
+	}
+
+	$_my_blog_count = 0;
+
 	foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
+		if ($_my_blog_count == 14)
+			break;
+
 		switch_to_blog( $blog->userblog_id );
 
 		$blavatar = '<div class="blavatar"></div>';
@@ -448,6 +464,8 @@ function wp_admin_bar_my_sites_menu( $wp_admin_bar ) {
 		) );
 
 		restore_current_blog();
+
+		$_my_blog_count++;
 	}
 }
 
-- 
1.7.11.1

