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

wpdb::check_connection() public WP 3.9.0

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

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

<?php
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();
}