WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Рекомендуемые продукты со скидкой от Template Monster

is_blog_installed() WP 2.1.0

Проверяет установлен ли сайт. Проверяется наличие опции siteurl и таблиц в базе данных. Результат кэшируется.

Сначала проверяется кэш. Если установлен кэш плагин работающий с объектным кэшем, то он будет работать. Если используется стандартный WordPress кэш и база данных "полопалась", то могут возникнуть проблемы.

Функция проверяет наличие опции siteurl, если её нет, то проверяются таблицы.

Ремонт и оптимизация таблиц базы данных в WordPress

Может так получиться, что таблица опций повреждена и получить опцию siteurl невозможно, но сайт все же установлен. Поэтому если не удалось найти опцию siteurl, проверяется наличие таблиц. Если ни одной таблицы в БД нет, значит можно устанавливать сайт. Если хоть одна таблица в БД найдена, то будет предложен ремонт (repair) таблиц.

В WordPress есть родной скрипт для ремонта таблиц базы данных. Находится он по адресу: /wp-admin/maint/repair.php это самодостаточный скрипт, но для обращения к этому скрипту напрямую в wp-config.php должна быть установлена константа:

define('WP_ALLOW_REPAIR', true);

Если такая константа есть, то при обращении к скрипту вы увидите такое диалоговое окно:

Ремонт таблиц в WordPress

✈ 1 раз = 0.000026с = очень быстро | 50000 раз = 0.07с = скорость света | PHP 7.0.14, WP 4.7

Хуков нет.

Возвращает

True/false.

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

if( is_blog_installed() ){
	// сайт установлен!
}

Заметки

  • Global. wpdb. $wpdb WordPress database abstraction object.

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

С версии 2.1.0 Введена.

Код is blog installed: wp-includes/functions.php WP 5.2.4

<?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 insane 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;
		}

		if ( ! $wpdb->get_results( "DESCRIBE $table;" ) ) {
			continue;
		}

		// One or more tables exist. We are insane.

		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;
}

Cвязанные функции

Из метки: Условные теги (все)

Еще из раздела: Без рубрики

Комментариев нет
Здравствуйте, !     Войти . Зарегистрироваться