WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

wpdb::check_connection() public WP 3.9.0

Checks that the connection to the database is still up. If not, try to reconnect.

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.

If this function is unable to reconnect, it will forcibly die, or if called after the template_redirect hook has been fired, return false instead.

If $allow_bail is false, the lack of database connection will need to be handled manually.

{} Это метод класса: wpdb{}

Хуков нет.

Возвращает

true|false|null. True if the connection is up.

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

global $wpdb;
$wpdb->check_connection( $allow_bail );
$allow_bail(true|false)
Allows the function to bail.
По умолчанию: true

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

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

Код wpdb::check_connection() WP 5.8.2

public function check_connection( $allow_bail = true ) {
	if ( $this->use_mysqli ) {
		if ( ! empty( $this->dbh ) && mysqli_ping( $this->dbh ) ) {
			return true;
		}
	} else {
		if ( ! empty( $this->dbh ) && mysql_ping( $this->dbh ) ) {
			return true;
		}
	}

	$error_reporting = false;

	// Disable warnings, as we don't want to see a multitude of "unable to connect" messages.
	if ( WP_DEBUG ) {
		$error_reporting = error_reporting();
		error_reporting( $error_reporting & ~E_WARNING );
	}

	for ( $tries = 1; $tries <= $this->reconnect_retries; $tries++ ) {
		// On the last try, re-enable warnings. We want to see a single instance
		// of the "unable to connect" message on the bail() screen, if it appears.
		if ( $this->reconnect_retries === $tries && WP_DEBUG ) {
			error_reporting( $error_reporting );
		}

		if ( $this->db_connect( false ) ) {
			if ( $error_reporting ) {
				error_reporting( $error_reporting );
			}

			return true;
		}

		sleep( 1 );
	}

	// If template_redirect has already happened, it's too late for wp_die()/dead_db().
	// Let's just return and hope for the best.
	if ( did_action( 'template_redirect' ) ) {
		return false;
	}

	if ( ! $allow_bail ) {
		return false;
	}

	wp_load_translations_early();

	$message = '<h1>' . __( 'Error reconnecting to the database' ) . "</h1>\n";

	$message .= '<p>' . sprintf(
		/* translators: %s: Database host. */
		__( 'This means that we lost contact with the database server at %s. This could mean your host&#8217;s database server is down.' ),
		'<code>' . htmlspecialchars( $this->dbhost, ENT_QUOTES ) . '</code>'
	) . "</p>\n";

	$message .= "<ul>\n";
	$message .= '<li>' . __( 'Are you sure the database server is running?' ) . "</li>\n";
	$message .= '<li>' . __( 'Are you sure the database server is not under particularly heavy load?' ) . "</li>\n";
	$message .= "</ul>\n";

	$message .= '<p>' . sprintf(
		/* translators: %s: Support forums URL. */
		__( 'If you&#8217;re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href="%s">WordPress Support Forums</a>.' ),
		__( 'https://wordpress.org/support/forums/' )
	) . "</p>\n";

	// We weren't able to reconnect, so we better bail.
	$this->bail( $message, 'db_connect_fail' );

	// Call dead_db() if bail didn't die, because this database is no more.
	// It has ceased to be (at least temporarily).
	dead_db();
}