get_id_from_blogname()WP 3.0.0

Получает ID сайта (блога) по указанному ярлыку (слагу): субдомену или имени директории.

Работает на основе: get_sites()

Хуков нет.

Возвращает

int|null. ID сайта или null, если не удалось определить сайт по указанному ярлыку.

Использование

get_id_from_blogname( $slug );
$slug(строка) (обязательный)

Поддомен или имя директории сайта (подсайта).

В $slug нужно указывать:

  • Слаг поддомена, если подсайты это поддомены. Например, blog из blog.site.com.
  • Слаг каталога, если подсайты это каталоги. Например, blog из site.com/blog/.

Примеры

0

#1 Получим ID сайта сети по ярлыку этого сайта

Допустим ID искомого сайта равен 2, тогда:

// сайт может иметь следующий домен или путь, зависит от настроек мультисайта:
// blog.site.com
// site.com/blog
get_id_from_blogname( 'blog' ); //> 2

Список изменений

С версии 3.0.0 Введена.
С версии 4.7.0 Converted to use get_sites().

Код get_id_from_blogname() WP 6.5.2

function get_id_from_blogname( $slug ) {
	$current_network = get_network();
	$slug            = trim( $slug, '/' );

	if ( is_subdomain_install() ) {
		$domain = $slug . '.' . preg_replace( '|^www\.|', '', $current_network->domain );
		$path   = $current_network->path;
	} else {
		$domain = $current_network->domain;
		$path   = $current_network->path . $slug . '/';
	}

	$site_ids = get_sites(
		array(
			'number'                 => 1,
			'fields'                 => 'ids',
			'domain'                 => $domain,
			'path'                   => $path,
			'update_site_meta_cache' => false,
		)
	);

	if ( empty( $site_ids ) ) {
		return null;
	}

	return array_shift( $site_ids );
}