WordPress Version: 6.2
/**
* Gets a blog's numeric ID from its URL.
*
* On a subdirectory installation like example.com/blog1/,
* $domain will be the root 'example.com' and $path the
* subdirectory '/blog1/'. With subdomains like blog1.example.com,
* $domain is 'blog1.example.com' and $path is '/'.
*
* @since MU (3.0.0)
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param string $domain Website domain.
* @param string $path Optional. Not required for subdomain installations. Default '/'.
* @return int 0 if no blog found, otherwise the ID of the matching blog.
*/
function get_blog_id_from_url($domain, $path = '/')
{
$domain = strtolower($domain);
$path = strtolower($path);
$id = wp_cache_get(md5($domain . $path), 'blog-id-cache');
if (-1 == $id) {
// Blog does not exist.
return 0;
} elseif ($id) {
return (int) $id;
}
$args = array('domain' => $domain, 'path' => $path, 'fields' => 'ids', 'number' => 1, 'update_site_meta_cache' => false);
$result = get_sites($args);
$id = array_shift($result);
if (!$id) {
wp_cache_set(md5($domain . $path), -1, 'blog-id-cache');
return 0;
}
wp_cache_set(md5($domain . $path), $id, 'blog-id-cache');
return $id;
}