Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save spacedmonkey/b1cf95e5c9531511401ae8c6bb4ef5fb to your computer and use it in GitHub Desktop.
Save spacedmonkey/b1cf95e5c9531511401ae8c6bb4ef5fb to your computer and use it in GitHub Desktop.
if ( count( $domains ) > 1 && count( $paths ) > 1 ) {
$sql = "SELECT * FROM $wpdb->blogs WHERE domain IN ($search_domains) AND path IN ($search_paths) ORDER BY CHAR_LENGTH(domain) DESC, CHAR_LENGTH(path) DESC LIMIT 1";
} elseif ( count( $domains ) > 1 ) {
$sql = $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE path = %s", $paths[0] );
$sql .= " AND domain IN ($search_domains) ORDER BY CHAR_LENGTH(domain) DESC LIMIT 1";
} elseif ( count( $paths ) > 1 ) {
$sql = $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE domain = %s", $domains[0] );
$sql .= " AND path IN ($search_paths) ORDER BY CHAR_LENGTH(path) DESC LIMIT 1";
} else {
$sql = $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE domain = %s AND path = %s", $domains[0], $paths[0] ) );
}
$key = md5($sql);
$last_changed = wp_cache_get( 'last_changed', 'sites' );
if ( ! $last_changed ) {
$last_changed = microtime();
wp_cache_set( 'last_changed', $last_changed, 'sites' );
}
$cache_key = "get_site_by_path:$key:$last_changed";
if ( $cache = wp_cache_get( $cache_key, 'sites' ) ) {
return $cache;
}
$site = $wpdb->get_row( $sql );
if ( $site ) {
wp_cache_get( $cache_key, $site, 'sites' )
// @todo get_blog_details()
return $site;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment