# is_blog_installed()

URL: https://chugunov.pro/api-wordpress/functions/is_blog_installed/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.1.0.

## Сигнатура

```php
is_blog_installed(): bool
```

## Описание

Сначала проверяется кэш. Если у вас установлен плагин кэширования, который сохраняет значения кэша, то это сработает. Если вы используете стандартный кэш WordPress и база данных становится недоступна, могут возникнуть проблемы.
Для определения того, установлен ли WordPress, проверяется опция «siteurl».
Подробнее об этой и похожих функциях темы см. статью Conditional Tags в Theme Developer Handbook.

## Возвращаемое значение

`bool`

## Исходный код

Файл: `wp-includes/functions.php:1773`

```php
function is_blog_installed() {
	global $wpdb;

	/*
	 * Check cache first. If options table goes away and we have true
	 * cached, oh well.
	 */
	if ( wp_cache_get( 'is_blog_installed' ) ) {
		return true;
	}

	$suppress = $wpdb->suppress_errors();

	if ( ! wp_installing() ) {
		$alloptions = wp_load_alloptions();
	}

	// If siteurl is not set to autoload, check it specifically.
	if ( ! isset( $alloptions['siteurl'] ) ) {
		$installed = $wpdb->get_var( "SELECT option_value FROM $wpdb->options WHERE option_name = 'siteurl'" );
	} else {
		$installed = $alloptions['siteurl'];
	}

	$wpdb->suppress_errors( $suppress );

	$installed = ! empty( $installed );
	wp_cache_set( 'is_blog_installed', $installed );

	if ( $installed ) {
		return true;
	}

	// If visiting repair.php, return true and let it take over.
	if ( defined( 'WP_REPAIRING' ) ) {
		return true;
	}

	$suppress = $wpdb->suppress_errors();

	/*
	 * Loop over the WP tables. If none exist, then scratch installation is allowed.
	 * If one or more exist, suggest table repair since we got here because the
	 * options table could not be accessed.
	 */
	$wp_tables = $wpdb->tables();
	foreach ( $wp_tables as $table ) {
		// The existence of custom user tables shouldn't suggest an unwise state or prevent a clean installation.
		if ( defined( 'CUSTOM_USER_TABLE' ) && CUSTOM_USER_TABLE === $table ) {
			continue;
		}

		if ( defined( 'CUSTOM_USER_META_TABLE' ) && CUSTOM_USER_META_TABLE === $table ) {
			continue;
		}

		$described_table = $wpdb->get_results( "DESCRIBE $table;" );
		if (
			( ! $described_table && empty( $wpdb->last_error ) ) ||
			( is_array( $described_table ) && 0 === count( $described_table ) )
		) {
			continue;
		}

		// One or more tables exist. This is not good.

		wp_load_translations_early();

		// Die with a DB error.
		$wpdb->error = sprintf(
			/* translators: %s: Database repair URL. */
			__( 'One or more database tables are unavailable. The database may need to be <a href="%s">repaired</a>.' ),
			'maint/repair.php?referrer=is_blog_installed'
		);

		dead_db();
	}

	$wpdb->suppress_errors( $suppress );

	wp_cache_set( 'is_blog_installed', false );

	return false;
}
```

## История изменений

- 2.1.0 — Introduced.

## Связанные

Использует: [`wp_installing`](https://chugunov.pro/api-wordpress/functions/wp_installing/), [`wp_cache_set`](https://chugunov.pro/api-wordpress/functions/wp_cache_set/), [`wp_load_translations_early`](https://chugunov.pro/api-wordpress/functions/wp_load_translations_early/), [`dead_db`](https://chugunov.pro/api-wordpress/functions/dead_db/), [`wp_load_alloptions`](https://chugunov.pro/api-wordpress/functions/wp_load_alloptions/), `wpdb::suppress_errors`, `wpdb::tables`, [`wp_cache_get`](https://chugunov.pro/api-wordpress/functions/wp_cache_get/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), `wpdb::get_var`, `wpdb::get_results`.
Используется в: [`wp_upgrade`](https://chugunov.pro/api-wordpress/functions/wp_upgrade/), [`wp_not_installed`](https://chugunov.pro/api-wordpress/functions/wp_not_installed/), [`wp_widgets_init`](https://chugunov.pro/api-wordpress/functions/wp_widgets_init/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/is_blog_installed/
