Как использовать функцию IS_BLOG_INSTALLED() в WordPress

# 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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *