Ok for subdomain it's easy. I guess it just looks up the subdomain:


=> explode('.', $_SERVER['REQUEST_URI'])...

But how does it do it for sub-directory setups? This should be interesting considering that pages, taxonomies and what not can take the first part of the part after the site domain name.

How can it distinguish between a inner blog, and a page of the primary blog? The only thing I could think of is database matching against the entire blog list, then if it fails match primary blog content, but that would be a really stupid thing to do because it seriously slows down the site...

2 Answers 2


You can use the get_current_site() function.

Ref. : http://codex.wordpress.org/WPMU_Functions/get_current_site


Your answer is in ms-settings.php, and it's basically the same for domain and/or subdirectory installs.

$current_site->blog_id = $wpdb->get_var( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE domain = %s AND path = %s", $current_site->domain, $current_site->path ) );

Both the domain name and the path are used to determine what blog is being accessed.

This doesn't "seriously slow down" anything, both the domain and the path are fully indexed fields in the database.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.