How does wordpress know which site to setup (on multisite)?

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

blog5.site.com

Read More

=> 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…

Related posts

Leave a Reply

2 comments

  1. 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.