# IS_BLOG_INSTALLED() │ WP 2.1.0
Функция IS_BLOG_INSTALLED()
позволяет проверить, установлена ли уже ваша система WordPress.
## Как это работает?
Сначала функция проверяет кэш. Это значит, что если у вас установлен плагин для кэширования, то проверка будет быстрая. Однако, если вы используете встроенный кэш WordPress и база данных не доступна, вы можете столкнуться с проблемами.
Функция ищет опцию siteurl
, чтобы понять, установлена ли WordPress.
### Время выполнения
- 1 раз — 0.000026 секунды (очень быстро)
- 50000 раз — 0.07 секунды (практически мгновенно)
### Вернет
Функция возвращает true | false
, в зависимости от того, установлена ли сайт или нет.
## Применение
```php
is_blog_installed();
Пример
function widgets_init() {
if ( ! is_blog_installed() ) {
return;
}
register_widget( 'WP_Widget_Black_Studio_TinyMCE' );
}
Этот пример показывает, как проверить, установлена ли WordPress перед добавлением виджета.
Примечания
- Использует глобальный объект
$wpdb
, который отвечает за взаимодействие с базой данных WordPress.
Изменения
Функция была добавлена в версии 2.1.0.
Код функции
Функция is_blog_installed()
написана в файле wp-includes/functions.php
. Вот её код:
function is_blog_installed() {
global $wpdb;
if ( wp_cache_get( 'is_blog_installed' ) ) {
return true;
}
$suppress = $wpdb->suppress_errors();
if ( ! wp_installing() ) {
$alloptions = wp_load_alloptions();
}
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 ( defined( 'WP_REPAIRING' ) ) {
return true;
}
$suppress = $wpdb->suppress_errors();
$wp_tables = $wpdb->tables();
foreach ( $wp_tables as $table ) {
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;
}
wp_load_translations_early();
$wpdb->error = sprintf(
__( 'Некоторые таблицы базы данных недоступны. Возможно, базу данных нужно отремонтировать.' ),
'maint/repair.php?referrer=is_blog_installed'
);
dead_db();
}
$wpdb->suppress_errors( $suppress );
wp_cache_set( 'is_blog_installed', false );
return false;
}
Связанные функции
Функция is_blog_installed()
относится к условным тегам. Вот некоторые из них:
cat_is_ancestor_of()
category_exists()
comments_open()
email_exists()
has_block()
has_category()
is_admin()
- и другие...
Эти функции помогут вам выполнять проверки по различным условиям в WordPress.